Arsenal
Arsenal
  • 发布:2018-12-06 17:07
  • 更新:2020-08-31 00:58
  • 阅读:15385

uni-app 里如何解析 uni.request 中拿到的 html

分类:uni-app

由于种种原因,有一个接口返回的内容是HTML,我现在需要把HTML里的数据提取出来。

在之前5+里,我的做法是利用 jQuery,像这样:

            mui.ajax("url",  
            {  
                success:function(html){  
                    var value = $(html).find("#id").html();  
                }  
            });

现在用 uni-app 的话,有没有什么办法能够把解析接口返回的HTML?


这个问题我已经解决了

我的解决方案是使用这个:

https://github.com/cheeriojs/cheerio

效果很好

2018-12-06 17:07 负责人:无 分享
已邀请:

最佳回复

DCloud_UNI_GSQ

DCloud_UNI_GSQ

Arsenal

Arsenal (作者)

可能我没有表达清楚,我不是要把拿到的 HTML 展示在页面上,而是需要获取里面的数据。

比如 HTML 是这样的:

<div>  
<p id="id">123</p>  
</div>

我需要得到123,在5+里面,我可以用 jQuery 这样做:

var value = $(html).find("#id").val();

但在 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

h***@163.com - 80后IT男

你解决了,我也是这个,一直调不出来,之前用v-html现在也用不了了

  • 1***@163.com

    您好 请问这个问题怎么解决呀 谢谢

    2019-07-18 09:53

  • jtshushu

    您好 问题是怎么解决的呢

    2019-08-01 11:28

Arsenal

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

teller306

如何直接将html直接显示出来

  • Arsenal (作者)

    这个场景不是把html显示出来

    2020-05-09 10:36

y***@163.com

y***@163.com

肯定正则了啊,还用想吗?

  • Arsenal (作者)

    您厉害!

    2020-05-09 10:36

井

https://github.com/cheeriojs/cheerio

为服务器特别定制的,快速、灵活、实施的jQuery核心实现.

这个库的文档有写是服务端的库,不确定在客户端中可不可以正常运行,会不会出什么问题。
如果是后端 nodejs 请求 html 后使用该库解析,解析后的结果再通过接口返回给 uni-app json 数据,肯定不会有任何问题的

  • Arsenal (作者)

    效果很好,没有问题

    2020-08-27 15:22

  • 回复 Arsenal: 好的,谢谢,我试下

    2020-08-27 15:35

zebra

zebra

你好咨询一下,我也刚需要用这个。除了使用 npm install cheerio导入之后,还有其他需要调试的地方么。 我的引入文件后会报下面图中的错误。
在vue项目中导入没事吗,在uni中使用就这样,,还没搞明白怎么回事。

该问题目前已经被锁定, 无法添加新回复