微信小程序获取html内容后展示(C#)
使用场景:微信小程序
具体功能:从服务器获取文章内容 展示在小程序里
使用语言: C#
---------------------------------------------------------
因为微信小程序不能识别html标签,不能直接获取到html绑定到小程序里
有两种解决方案:
1、使用基于微信小程序的第三方插件。
2、在服务器后 直接把html处理好,返回。
本篇文章说的 是第二个方法
---------------------------------------------------------
解决思路:
1.定义一个数组
2.获取html内容,根据p标签或者div标签 分割 (这里解释一下,内容一般是后台使用编辑器填的,生成的标签段落都是p标签为主,所以我 这里用p标签分割)
3.循环分割的html,判断有没有包含img标签
4.过滤p标签 和 图片 保存在数组里。
5.返回给小程序,前台判断绑定。
---------------------------------------------------------
//定义一个类型,用来保存分割后的内容
public class CntList
{
public string content { get; set; }
public string type { get; set; }
}
/// <summary>
/// 具体实现的方法
/// </summary>
/// <param name="content">文字内容</param>
/// <returns>listCnt</returns>
public static List<CntList> getCntByList(string content)
{
List<CntList> listCnt = new List<CntList>(); //文章
if (!string.IsNullOrEmpty(content))
{
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(content);
var p_cnt = doc.DocumentNode.SelectNodes("//p");
foreach (var pItem in p_cnt)
{
var node = HtmlNode.CreateNode(pItem.OuterHtml);
if (node.InnerHtml.Contains("src"))
{
if (node.SelectSingleNode("//img") != null)
{
string _href = node.SelectSingleNode("//img").Attributes["src"].Value;
listCnt.Add(new CntList { type = "image", content = _href });
}
}
else
{
listCnt.Add(new CntList { type = "content", content = X.Component.Tools.StringHelper.NoHTML(node.InnerText) });
}
}
}
return listCnt;
}
微信小程序绑定数据:
<view class="detail-info">
<view wx:for="{{detail.cnt}}" wx:for-item="cntItem" style=" margin-bottom: 15px;" wx:key="shardCnt">
<block wx:if="{{cntItem.type=='image'}}">
<image src="{{cntItem.content}}" mode="aspectFill" class="cover"></image>
</block>
<block wx:else>
<view>{{cntItem.content}}</view>
</block>
</view>
</view>
效果:

微信小程序获取html内容后展示(C#)的更多相关文章
- 微信小程序获取输入框(input)内容
微信小程序---获取输入框(input)内容 wxml <input placeholder="请输入手机号码" maxlength="11" type= ...
- [微信小程序] 微信小程序获取用户定位信息并加载对应城市信息,wx.getLocation,腾讯地图小程序api,微信小程序经纬度逆解析地理信息
因为需要在小程序加个定位并加载对应城市信息 然而小程序自带api目前只能获取经纬度不能逆解析,虽然自己解析方式,但是同时也要调用地图,难道用户每次进小程序还要强行打开地图选择地址才定位吗?多麻烦也不利 ...
- 微信小程序-获取当前城市位置及再次授权地理位置
微信小程序-获取当前城市位置 1. 获取当前地理位置,可通过wx.getLocation接口,返回经纬度.速度等信息; 注意---它的默认工作机制: 首次进入页面,调用该api,返回用户授权结果,并保 ...
- C# 微信小程序获取openid sessionkey
项目介绍 1.微信小程序获取openid和session_key 2.后台使用C#开发 项目流程 准备工作 1 获取appid 1.1 下载微信web开发工具 https://developers.w ...
- .Net之微信小程序获取用户UnionID
前言: 在实际项目开发中我们经常会遇到账号统一的问题,如何在不同端或者是不同的登录方式下保证同一个会员或者用户账号唯一(便于用户信息的管理).这段时间就有一个这样的需求,之前有个客户做了一个微信小程序 ...
- 微信小程序获取手机号码看这篇文章就够了
前言 微信小程序获取手机号码,从官方文档到其他博主的文档 零零散散的 (我就是这样看过来 没有一篇满意的 也许是我搜索姿势不对) 依旧是前人栽树 后人乘凉 系列.保证看完 就可以实现获取手机号码功能 ...
- 图解微信小程序---获取电影列表
图解微信小程序---获取电影列表 代码笔记 list跳转 第一步:编写前端页面获取相关的电影列表参数(对于显示参数不熟悉,可以先写js,通过console Log的方式获取我们电影的相关数据字段,后 ...
- 微信小程序-获取当前位置和城市名
微信小程序-获取当前城市位置 1, 获取当前地理位置,首先要拿到用户的授权wx.openSetting: 2,微信的getLocation接口,获取当前用户的地理位置(微信返回的是经纬度,速度等参数) ...
- 微信小程序获取地理位置授权
微信小程序获取地理位置授权,首先需要在app.json中添加配置: "permission": { "scope.userLocation": { " ...
随机推荐
- asp.net 将ppt,word转化为pdf实现在线浏览详解
1.首先添加应用:COM里面的Micsosoft Office 12.0 Object Library(VS2013基本都有14.0或者15.0 有的话一样的添加,因为我的没有只有12.0) : 2. ...
- java基础之路(一)
Java数据类型分为内置类型和扩展类型两大类,其中的内置类型就是基本数据类型,而扩展类型则是Java语言根据基本类型扩展出的其他类型(也叫引用类型)(如:class,String等).本文主要讨论的是 ...
- 延时循环数组 DelayLoops
在操作mongodb数据库时,查询了数据得到一个数组,然后还得遍历这个数组,再对每个数组的值进行数据库相关的增删改查, 如果单纯的遍历会出错.所以才写了这个简单的类. var a = [1,2,3,4 ...
- 使用D3 Geo模块画澳大利亚地图
数据 数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息.因此做数据可视化前需要想明白2件事: 你有什么数据? 你要传达什么信息? 本文中的示例中,将以不同的颜色显示澳大利亚不同地区的客户数 ...
- 列表总结Canvas和SVG的区别
参考链接: 菜鸟教程 HTML5 内联SVG 经典面试题(讨论canvas与svg的区别) Canvas | SVG ---|--- 通过 JavaScript 来绘制 2D 图形|是一种使用 XML ...
- Canvas的下雪效果
cfs.snow.js canvas 下雪场景 不会影响页面使用 使用方式非常简单 利用这个js文件,我们就能很快的让页面出现下雪的动画效果. 例如 <script type="tex ...
- 转换器5:参考Python源码,实现Php代码转Ast并直接运行
前两个周末写了<手写PHP转Python编译器>的词法,语法分析部分,上个周末卡文了. 访问器部分写了两次都不满意,没办法,只好停下来,参考一下Python的实现.我实现的部分正好和Pyt ...
- geoR文档翻译
说来惭愧,很久没有更新自己的博客了.期间个人生活经历了很多变故,心理上的打击尤甚.加之没有取得好的科研成果,痛定思痛,还是下苦功夫多多学习. 最近对比验证各种方法的插值精度,用到了R语言地统计学包,由 ...
- 【Java基础】通过getResourceAsStream() 加载资源文件
Class.getResourceAsStream(String path) path不以"/"开头时,默认是从当前类所在的包下面获取资源 path以"/"开头 ...
- iOS开发之MapKit
1.概述 MapKit框架使用前提: 导入框架: 导入主头文件: #import <MapKit/MapKit.h> MapKit框架使用须知: MapKit框架中所有数据类型的前缀都是M ...