由于种种原因,有一个接口返回的内容是HTML,我现在需要把HTML里的数据提取出来。
在之前5+里,我的做法是利用 jQuery,像这样:
mui.ajax("url",
{
success:function(html){
var value = $(html).find("#id").html();
}
});
现在用 uni-app 的话,有没有什么办法能够把解析接口返回的HTML?
这个问题我已经解决了
我的解决方案是使用这个:
https://github.com/cheeriojs/cheerio
效果很好
8 个回复
最佳回复
DCloud_UNI_GSQ
渲染可以使用rich-text组件,或者wxparse插件
如果仅仅是解析,参考:在 uni-app 内解析 xml
Arsenal (作者)
可能我没有表达清楚,我不是要把拿到的 HTML 展示在页面上,而是需要获取里面的数据。
比如 HTML 是这样的:
我需要得到123,在5+里面,我可以用 jQuery 这样做:
但在 uni-app 里面,我就不知道如何拿到 123 了。
Arsenal (作者)
@868457
2018-12-10 10:49
DCloud_UNI_GSQ
回复 Arsenal:如果不了解vue需要学一下vue。如果这个123是固定的值,那你直接就知道它是123,如果123这里是动态的值,它一定是绑定到vm对象上的,直接读vm对象上对应的数据即可。
2018-12-10 13:53
Arsenal (作者)
回复 DCloud_UNI_GSQ: 这段HTML是我从uni.request里取的,理想情况是应该返回JSON,但是因为历史原因,调用这个接口返回的是HTML字符串。所以我需要从HTML字符串里面把数据给取出来
2018-12-10 14:18
DCloud_UNI_GSQ
回复 Arsenal:如果本身就是HTML字符串的话,可以自己解析一下,简单的html可以直接用正则匹配,复杂的可以网上找解析工具。
2018-12-10 15:28
Arsenal (作者)
回复 DCloud_UNI_GSQ:好的,谢谢
2018-12-10 15:46
1***@163.com
回复 Arsenal: 您好 请问这个问题怎么解决呀 谢谢
2019-07-18 09:53
Arsenal (作者)
回复 1***@163.com: https://github.com/cheeriojs/cheerio
2020-05-09 10:37
h***@163.com - 80后IT男
你解决了,我也是这个,一直调不出来,之前用v-html现在也用不了了
1***@163.com
您好 请问这个问题怎么解决呀 谢谢
2019-07-18 09:53
jtshushu
您好 问题是怎么解决的呢
2019-08-01 11:28
Arsenal (作者)
我的解决方案是使用这个:
https://github.com/cheeriojs/cheerio
效果很好
d***@163.com
如何引入这个库呢?
2019-12-26 17:50
damdmen
这个库引入后是否会造成App端白屏?看好像选择器和jquery一样,不知道会不会因为引用了浏览器的dom元素等等原因造成app端白屏
2020-03-09 18:23
damdmen
回复 d***@163.com: 用npm引入比较方便,这个库有好多个依赖
2020-03-09 18:24
Arsenal (作者)
回复 damdmen: 不会造成白屏
2020-05-09 10:35
teller306
如何直接将html直接显示出来
Arsenal (作者)
这个场景不是把html显示出来
2020-05-09 10:36
y***@163.com
肯定正则了啊,还用想吗?
Arsenal (作者)
您厉害!
2020-05-09 10:36
井
https://github.com/cheeriojs/cheerio
这个库的文档有写是服务端的库,不确定在客户端中可不可以正常运行,会不会出什么问题。
如果是后端 nodejs 请求 html 后使用该库解析,解析后的结果再通过接口返回给 uni-app json 数据,肯定不会有任何问题的
Arsenal (作者)
效果很好,没有问题
2020-08-27 15:22
井
回复 Arsenal: 好的,谢谢,我试下
2020-08-27 15:35
zebra
你好咨询一下,我也刚需要用这个。除了使用 npm install cheerio导入之后,还有其他需要调试的地方么。 我的引入文件后会报下面图中的错误。
在vue项目中导入没事吗,在uni中使用就这样,,还没搞明白怎么回事。