近期,开发小程序时,遇到后台给我返回了一串html代码,需要我这边来解析,头疼了好久,网上找资料找了变天,终于找到wxParse,然而看到的都是针对于页面中有单个html或者固定数据的,我现在的问题是,后台给我返回许多条数据,每一条数据中都有一串html代码需要解析。

  说到这儿,就先来说说wxParse的基本用法吧。

  首先引入必要的文件。

  (1)、在需要用到wxParse的js文件中引入wxParse.js文件、 

let wxParse = require("../../wxParse/wxParse.js");

  

  (2)、在.wxss文件中引入wxParse.wxss文件。

@import "../../wxParse/wxParse.wxss";

  假如现在有这样一个例子,const article = '<span align="center">抢<font color="red">7</font>元券后,入耳式耳机只要<font color="red">5.6</font>元!!安卓手机都通用的~</span>'

  那么在相应的js文件中就可以这样写

wxParse.wxParse('article', 'html', atricle, this,0)

  (3)、还没完,还得在相应的.wxml文件中引入wxParse.wxml模板文件。用法如下:

<import src="../../wxParse/wxParse.wxml"></import>

// 在需要用到富文本解析的地方使用如下,此处data中的article为绑定的数据名
<template is="wxParse" data="{{wxParseData:article.nodes}}"></template>

  此处盗用一张图。

    

  现在,回到博文开头说的问题,如何解析多条html代码,这时候可能需要用到wxParse插件中的另一个文件,即html2json.js文件。

  将上面的第一步换成如下:

let wxParse = require("../../wxParse/html2json.js");

  例如现在有这样一组数据:

     let goods_list = [
{
"reward_price": 0.35,
     "self_reward_price": 0.52,
     "dto_desc": "我来推荐",
     "mall_des": "<p>进店铺领<font color=\"red\">5</font>元,无门槛</p>"
}, {
"reward_price": 0.35,
     "self_reward_price": 0.52,
     "dto_desc": "我来推荐",
     "mall_des": "<p>进店铺领<font color=\"red\">5</font>元,无门槛</p>"
}, {
"reward_price": 0.35,
     "self_reward_price": 0.52,
     "dto_desc": "我来推荐",
     "mall_des": "<p>进店铺领<font color=\"red\">5</font>元,无门槛</p>"
}
]

  这里我的做法是,先初始化一个空数组arr,用来存放后面需要解析的富文本。具体做法是:

let malldes_list = []
let curPage = this.data.pageNum - 1 // pageNum表示当前页码,从1开始。每次获取完数据不要忘了将pageNum + 1
goods_list.forEach(function (item, index) {
malldes_list[index] = wxParse.html2json(item.mall_des, 'returnData')
}) this.setData({
['mallDesList[' + curPage + ']']: malldes_list,
  ['productList[' + curPage + ']']: goods_list,
  pageNum: this.data.pageNum + 1
})

  现在上面的第3条就可以这样来写:

// 列表页也涉及到分页,使用的二维数组。所以需要使用wx:for嵌套,在需要用到富文本解析的地方用上template模板。
<block wx:for="{{productList}}" wx:for-item="arrItem" wx:for-index="arrIndex" wx:key="arrIndex">
<block wx:for="{{arrItem}}" wx:for-item="item" wx:for-index="index" wx:key="item.goods_id">
<template is="wxParse" data="{{wxParseData:mallDesList[arrIndex][index].nodes}}"></template>
</block>
</block>

  啰嗦了半天,搞定了。

  最后,发下我的wxParse包含了那些文件:

    

  附上官网:https://github.com/icindy/wxParse

小程序解析html之富文本插件wxParse的更多相关文章

  1. 三十、小程序解析HTML(对富文本返回数据的处理)

    1.首先需要下载插件wxParse 下载地址 https://github.com/ZCLegendary/WXNews 百度云盘有保存 WXML <import src="../.. ...

  2. 微信小程序中显示html富文本的方法

    微信小程序中显示html富文本的方法 使用方法:git地址:https://github.com/icindy/wxParse 一.下载wxParse文件 二.在要引入的页面的js文件中,引入文件 j ...

  3. 微信小程序 —— 微信小程序解析html富文本插件wxParse

    下载并把wxParse放到小程序的目录中 github下载地址:https://github.com/icindy/wxParse 一.基本使用方法 1. Copy文件夹wxParse,把wxPars ...

  4. 微信小程序开发--富文本插件wxParse的使用

    昨天一位网友问我小程序怎么解析富文本.他尝试过把html转出小程序的组件,但是还是不成功,我说可以把内容剥离出来.但是这两种方法都是不行了.后来找到了wxParse-微信小程序富文本解析组件. 特性 ...

  5. 小程序快速部署富文本插件wxParser

    为了解决html2wxml在ios下字体过大问题,又发现一个比较好用的富文本插件:wxParser. 目前 wxParser 支持对一般的富文本内容包括标题.字体大小.对齐和列表等进行解析.同时也支持 ...

  6. 微信小程序之底部弹框预约插件

    代码地址如下:http://www.demodashi.com/demo/13982.html 一.前期准备工作: 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.c ...

  7. wxparse使用(富文本插件)

    优点:目前已知唯一可以转化HTML到小程序识别的插件 缺点:转换一个HTML标签可能需要大量的微信小程序标签还有样式 配置:第一步,下载 https://github.com/icindy/wxPar ...

  8. 【富文本、JS】将接口传来的全部纯URL替换为富文本插件能识别到的img标签

    replaceURLWithImage (text) { var a = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0 ...

  9. 微信小程序template富文本插件image宽度被js强制设置

    这段时间一直做微信小程序,过程中遇到了一个问题,这个问题一直没有得到完美的解决. 问题描述: 在Web编程中经常会引入template插件,这个插件是封装好,我们通常的做法是直接引入,配置简单,好用, ...

随机推荐

  1. LR 11录制IE起不来

    注:LR 11一般使用的是IE8或IE9 1.在录制脚本时Start Recoding中,默认如下,这样有可能IE打不开,需要更改路径,到对应的IE路径再尝试. 2.降低IE版本到IE8或者9 3.I ...

  2. C# WPF 父控件通过使用可视化树找到子控件

    在我们使用WPF设计前台界面时,经常会重写数据模板,或者把控件放到数据模板里.但是一旦将控件放到数据模板中,在后台就没有办法通过控件的名字来获取它了,更没办法对它进行操作(例如,隐藏,改变控件的某个值 ...

  3. 【Java】学习笔记(1)

    Java数据类型: 基本数据类型:(变量在栈中)数值型:byte(1个字节) short(2个字节) int(四个字节) long(8个字节) ,float(4字节) double(8字节) 字符型: ...

  4. Koa源码分析(三) -- middleware机制的实现

    Abstract 本系列是关于Koa框架的文章,目前关注版本是Koa v1.主要分为以下几个方面: Koa源码分析(一) -- generator Koa源码分析(二) -- co的实现 Koa源码分 ...

  5. K/3 Cloud移动BOS开发技巧 -- K/3 Cloud多数据中心时如何支持发布到云之家.

    我们知道K/3 Cloud和云之家进行集成,在管理中心里面有个设置,移动账套启用,只能支持一个账套启用那么能不能支持两个账套部署到云之家中呢?其实移动BOS平台默认是支持,答案就在发布到云之家的菜单中 ...

  6. Find them, Catch them POJ - 1703

    题意:N个人,M次操作,操作一:A X Y,X,Y不是同一帮派,操作二:D X Y,判断X和Y的关系. 思路:如果X和Y不是同一帮派,那X与Y+N.Y与X+N是同一帮派,如果X与Y不在同一帮派且X与Y ...

  7. 小程序跳转tabbar页面

    如果在app.json 配置tabbar 的时候配置了 跳转的页面的链接: 在其余的子页面,设置用navigator 进行跳转会发现 在tabbar 设置过的页面无法进行跳转,这时需要在navigat ...

  8. NOIP考点

    NOIP考点 基础算法 图 树 数论 数据结构 动态规划 搜索 其他算法 省选知识点汇总 图论 数据结构 字符串相关算法及数据结构 数学 计算几何 搜索 动态规划 其他算法 转自:巨佬的博客 加*号是 ...

  9. Libgdx slg游戏进程记录

    2月16日缩放居中,stage确定点击坐标,背景处理为actor 2月17日地图多次点击 2月19日stage确定点击位置(贝塞尔曲线六边形) 2月24日格式长度,读取xml属性解析btl保存 3月1 ...

  10. electron培训 ppt