使用场景:微信小程序

具体功能:从服务器获取文章内容 展示在小程序里

使用语言: 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#)的更多相关文章

  1. 微信小程序获取输入框(input)内容

    微信小程序---获取输入框(input)内容 wxml <input placeholder="请输入手机号码" maxlength="11" type= ...

  2. [微信小程序] 微信小程序获取用户定位信息并加载对应城市信息,wx.getLocation,腾讯地图小程序api,微信小程序经纬度逆解析地理信息

    因为需要在小程序加个定位并加载对应城市信息 然而小程序自带api目前只能获取经纬度不能逆解析,虽然自己解析方式,但是同时也要调用地图,难道用户每次进小程序还要强行打开地图选择地址才定位吗?多麻烦也不利 ...

  3. 微信小程序-获取当前城市位置及再次授权地理位置

    微信小程序-获取当前城市位置 1. 获取当前地理位置,可通过wx.getLocation接口,返回经纬度.速度等信息; 注意---它的默认工作机制: 首次进入页面,调用该api,返回用户授权结果,并保 ...

  4. C# 微信小程序获取openid sessionkey

    项目介绍 1.微信小程序获取openid和session_key 2.后台使用C#开发 项目流程 准备工作 1 获取appid 1.1 下载微信web开发工具 https://developers.w ...

  5. .Net之微信小程序获取用户UnionID

    前言: 在实际项目开发中我们经常会遇到账号统一的问题,如何在不同端或者是不同的登录方式下保证同一个会员或者用户账号唯一(便于用户信息的管理).这段时间就有一个这样的需求,之前有个客户做了一个微信小程序 ...

  6. 微信小程序获取手机号码看这篇文章就够了

    前言 微信小程序获取手机号码,从官方文档到其他博主的文档 零零散散的 (我就是这样看过来 没有一篇满意的 也许是我搜索姿势不对) 依旧是前人栽树 后人乘凉 系列.保证看完 就可以实现获取手机号码功能 ...

  7. 图解微信小程序---获取电影列表

    图解微信小程序---获取电影列表 代码笔记 list跳转 第一步:编写前端页面获取相关的电影列表参数(对于显示参数不熟悉,可以先写js,通过console  Log的方式获取我们电影的相关数据字段,后 ...

  8. 微信小程序-获取当前位置和城市名

    微信小程序-获取当前城市位置 1, 获取当前地理位置,首先要拿到用户的授权wx.openSetting: 2,微信的getLocation接口,获取当前用户的地理位置(微信返回的是经纬度,速度等参数) ...

  9. 微信小程序获取地理位置授权

    微信小程序获取地理位置授权,首先需要在app.json中添加配置: "permission": { "scope.userLocation": { " ...

随机推荐

  1. C#基础——集合及特殊集合

    集合 集合的基本信息: Systerm.Collections命名空间包含接口和类,这些接口和类定义各种对象(如列表.队列.位数组.哈希表和字典)的集合. Systerm.Collections.Ge ...

  2. 电器ERP行业案例——环力科技

    环力科技ERP案例 企业简介 [规模] 环力公司始建于1992年,是一家专业生产电子压力控制器.水泵压力控制器.气泵压力控制器.电泵浮球控制器.全自动水泵及其它配套产品研究.开发.生产.销售为一体的专 ...

  3. Java进程通讯

    管道(Pipe):管道可用于具有亲缘关系进程间的通信,允许一个进程和另一个与它有共同祖先的进程之间进行通信. 创建子进程Java有两种方式 //第一种 Runtime rt = Runtime.get ...

  4. Pdf File Writer 中文应用(PDF文件编写器C#类库)

    该文由小居工作室(QQ:2482052910)    翻译并提供解答支持,原文地址:Pdf File Writer 中文应用(PDF文件编写器C#类库):http://www.cnblogs.com/ ...

  5. JVM学习之类加载

    该文使用Hotspot    JDK1.7 一.类加载器 1.什么是类加载器 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java ...

  6. synchronized和lock比对

    前言:在上面的博客说了synchronized的一些用法,下面我们再来看看lock,这个出现频率也是非常高的一个. 1:获取Lock锁的几种方式 前面说了synchronized有锁对象和锁类对象,当 ...

  7. koahub软件市场微信编辑器源码,可下载

    管理过公众平台的小伙伴都知道,公众平台最重要的是图文的编辑和发布,由于微信公众平台的图文编辑页面比较简陋,功能和样式的比较少,所以一般都是使用专业的微信图文编辑器,koahub软件市场里有一款专门编辑 ...

  8. hibernate 三种状态的转换

    一.遇到的神奇的事情 使用jpa操作数据库,当我使用findAll()方法查处一个List的对象后,给对这个list的实体进行了一些操作,并没有调用update 或者 saveOrUpdate方法,更 ...

  9. 【子非鱼】归并排序过程呈现之java内置GUI表示

    在网上看到一个视频将各种排序用视频表示出来,配上音乐,挺好玩的样子,就算是不会编程的人看到也会觉得很舒服,碰巧我也正在写归并算法,于是就用java的GUI实现一个. 归并排序的时间复杂度是T(n)=O ...

  10. pyhton中的Queue(队列)

    什么是队列? 队列就像是水管子,先进先出,与之相对应的是栈,后进先出. 队列是线程安全的,队列自身有机制可以实现:在同一时刻只有一个线程在对队列进行操作. 存数据,取数据 import Queue q ...