我正在尝试解析看起来像这样的HTML列表的元素:
<ol>
<li>r1</li>
<li>r2
<ul>
<li>n1</li>
<li>n2</li>
</ul>
</li>
<li>r3
<ul>
<li>d1
<ol>
<li>e1</li>
<li>e2</li>
</ol>
</li>
<li>d2</li>
</ul>
</li>
<li>r4</li>
</ol>
我可以在大多数情况下对此进行解析,但对我来说最大的问题是将DOM文本退回。不幸的是,lxml的node.text_content()返回其下面完整树的文本形式。我可以使用LXML获得该元素的文本内容,还是需要使用字符串操纵或正则言论?
对于例如:带有D1的节点返回" D1E1E2",而我希望它仅返回D1。
每个节点都有一个称为 text
的属性。那就是您要寻找的。
例如:
for node in root.iter("*"):
print node.text
# print node.tail # e.g.: <div> <span> abc </span> def </div> => abc def