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