我有一个HTML文档,我想解析它。我正在尝试使用cheerio解析HTML文件。
<ul data-reactid=".0.1.0.0.1.1.0.0.0.0.1.0">
<li class="_1ht1 _1ht2" data-reactid=".0.1.0.0.1.1.0.0.0.0.1.0.1:$user=xyz">
.
.
.
.
<span data-reactid=".0.1.0.0.1.1.0.0.0.0.1.0.1:$user=xyz.0.0.$right.0.0.1.$left.0.1:0">
My Random Text
</span>
</li>
</ul>从我的HTML中,我正在尝试使用data-reactid=".0.1.0.0.1.1.0.0.0.0.1.0“提取ul标记的第一个实例。
在第一个li标记中,我想提取用户,在本例中是xyz。之后,我想在代码中提到的span类中找到文本。
通过“啦啦队”,我尝试了以下几点:
var cheerio = require('cheerio'),
fs = require('fs');
fs.readFile('index.html', 'utf8', dataLoaded);
function dataLoaded(err, data) {
$ = cheerio.load(data);
console.log("Trying out " + JSON.stringify($("<ul data-reactid=\".0.1.0.0.1.1.0.0.0.0.1.0\">").data()));
} 它打印Trying out {"reactid":".0.1.0.0.1.1.0.0.0.0.1.0"},如何在HTML中获取值?
注: xyz是动态的,它将发生变化。
发布于 2015-07-18 10:08:19
我认为,如果我正确理解你的问题,这将对你有用:
var myDataReactId = '.0.1.0.0.1.1.0.0.0.0.1.0'
var firstLi = $("ul[data-reactid = '" + myDataReactId + "'] li")[0];
//console.log(firstLi);
var user = $(firstLi).data('reactid');
$(firstLi).find("span[data-reactid*='" + user + "']").text();发布于 2015-07-18 09:14:49
尝尝这个。基本上,它将HTML转换为jquery可以处理的内容,然后找到未排序的列表,当然,您可以使查找更加具体。使用.data()提取data-reactid属性值。
reactid = $($(data).find('ul>li>span')).data('reactid');发布于 2015-07-18 09:46:20
我的第一个答案的问题是,我并没有真正找到您想要从其中提取reactid的元素。有了一些js,我就能够把类似于您的场景的东西组合在一起。在小提琴上注意到我使用.html()。不用再多说了,我们来看看:http://jsfiddle.net/0r5k9egu/。运行小提琴,在控制台中您将看到.0.1.0.0.1.1.0.0.0.0.1.0.1:$user=xyz.0.0.$right.0.0.1.$left.0.1:0
https://stackoverflow.com/questions/31489562
复制相似问题