微信小程序获取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": { " ...
随机推荐
- Hadoop伪分布安装配置
安装环境: 系统:Ubuntu 14.10 64bit hadoop:2.5.1 jdk:1.8.0_11 安装步骤: 一.安装JDK 安装 jdk,并且配置环境以及设置成默认 sudo gedi ...
- 数据库 t-sql 语句
sql 高级语句 在基础语句上加上条件 条件修改: update 表名set 列明=要修改的值 where 列名 =原来的值 条件删除 删除 这个值的的一行 delete from 表名 ...
- 一个很逗的东西——Jd
这个嘛是本人专门为了NOI上面对拍程序写的对拍程序,已经经历了NOI2015的考验:更重要的是——纯Pascal的哦(HansBug:其实是我不会写.sh脚本TT,谁叫用惯了windows的我只会写b ...
- (1)写给Web初学者的教案-----学习Web的知识架构
1:学习Web的知识架构 前文中我们简单的介绍了一些关于Web的基本知识,这里任老师再次强调一下凡是用浏览器打开的网站我们就称之为Web应用程序(B/S结构).除此之外其它需要下载安装的软件或是手机 ...
- Archlinux 中安装 LyX
LyX 是 Latex 的 GUI 界面程序.使用效果类似 Office Word 和 wps.可直接生成 PDF 文件. 我使用的是 LyX + TexLive + XeTeX 组合.近期 Arch ...
- angularJS之ng-repeat
<p>使用 ng-repeat 来循环数组</p> <ul> <li data-ng-repeat="x in numArray&quo ...
- html中submit和button的区别(总结) [ 转自欣步同学 ]
html中submit和button的区别(总结) submit是button的一个特例,也是button的一种,它把提交这个动作自动集成了. 如果表单在点击提交按钮后需要用JS进行处理(包括输入验证 ...
- Django中使用CKEditor代码高亮显示插件Code Snippet
Django使用CKEditor可以安装django-ckeditor这个模块,具体步骤可按照这里进行:http://www.nanerbang.com/article/2/ 我在富文本编辑器中想使用 ...
- PHP语言开发微信公众平台(订阅号)之curl命令
在开发过程中,经常会遇到要求用curl命令调用接口的情况 那么,什么是curl,简单来说curl是一个利用url语法规定来传输文件和哦数据的工具,支持很多协议,如 http.ftp.telent 等, ...
- iOS网络编程笔记——GCDAsyncSocket使用
CocoaAsyncSocket为Mac和iOS提供了易于使用且强大的异步通信库. 简单的Socket通信包括了建连.断开连接.发送socket业务请求.重连这四个基本功能. 1.建立连接:GCDAs ...