gpt4 book ai didi

python - 获取 lxml 节点中的所有文本

转载 作者:太空宇宙 更新时间:2023-11-04 00:08:51 26 4
gpt4 key购买 nike

我使用以下方法打印元素节点内的所有文本(不是 html,而是包含的实际文本):

''.join(node.xpath('//div[@class="title_wrapper"]')[0].itertext())

是否有更简洁的方法来执行此操作?

最佳答案

您可以使用 XPath 的 string()功能。

如果混合内容中有大块空白,可以使用 XPath 的 normalize-space()功能。

所有三个示例(你的和我的两个)...

python

from lxml import etree

xml = """<doc>
<div class="title_wrapper">Some text. Some <span>more</span> text.
<span>Even <span>m<span>o</span>re</span> text!</span>
</div>
</doc>"""

tree = etree.fromstring(xml)

print(''.join(tree.xpath('//div[@class="title_wrapper"]')[0].itertext()))

print(tree.xpath('string(//div[@class="title_wrapper"])'))

print(tree.xpath('normalize-space(//div[@class="title_wrapper"])'))

输出

Some text. Some more text. 
Even more text!

Some text. Some more text.
Even more text!

Some text. Some more text. Even more text!

关于python - 获取 lxml 节点中的所有文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53195927/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com