我正在使用cheerio
解析不同节点中的HTML代码。我可以很容易地执行$("*")
,但这只得到了普通的HTML节点,而不是单独的文本节点。让我们考虑3个用户输入:
第一:
text only
- 我需要:单个文本节点。*
第二:
<div>
text 1
<div>
inner text
</div>
text 2
</div>
- 我需要:文本节点+ div节点+相同序列的文本节点。*
第三:
<div>
<div>
inner text 1
<div>
inner text 2
</div>
</div>
<div>
inner text 3
</div>
</div>
- 我需要:2个div节点 *
可能吗?
3条答案
按热度按时间h43kikqp1#
在希望帮助某人的时候,
filter
函数似乎也返回文本节点.我从这个答案中得到了帮助:https://stackoverflow.com/a/6520267/3800042HTML输入
测试结果
oalqel3c2#
我希望下面的代码能对你有所帮助。
oipij1gg3#
如果您想要节点的所有直接子节点,包括文字节点和标签节点,请使用
.contents()
并筛选出只有空白的文字节点。下面是在示例中运行的代码:
输出量:
如果只需要文本节点而不需要标签,请参阅如何在Cheerio中获取由不同HTML标签分隔的文本。