1
我有一个文件:如何选择文档中的所有文本节点?
<html>
<body>
<p>Hello World!</p>
<p>Goodbye!</p>
</body>
</html>
我想在遍历所有文本节点的文件中,执行命名实体识别(此组件适用于纯文本输入),然后输出的所有元素的XPath通过我的识别算法。我的问题是我不知道如何获取文档中的所有文本元素而不丢弃它们的xpath信息。例如,
root.xpath("//text()")
刚刚产生的字符串的平面数组:
['\n ', 'Hello World!', '\n ', 'Goodbye!', '\n ']
所有的结构信息丢失,所以我没有告诉在文档中的每个字符串的方式。有没有更好的办法?
下面是完整的源:
import lxml.html
import sys
with open(sys.argv[1]) as fin:
text_string = fin.read()
root = lxml.html.document_fromstring(text_string)
text_elements = root.xpath("//text()")
print text_elements
啊,我以为这只是一个简单的字符串,但事实证明并非如此。谢谢! – misha