【发布时间】:2014-09-02 08:45:26
【问题描述】:
我正在使用lxml 解析从 Internet 下载的 XML 文件。它的结构类似于:
<root>
<a>Some text in A node</a>
<b><c>Some text in C node</c>Some text in B node</b>
</root>
我想使用以下代码打印节点内的文本:
from lxml import etree
doc = etree.parse('some.xml')
root = doc.getroot()
for ch in root:
print ch.text
输出
Some text in A node
None
这不是为<B> 打印text。为什么?当我更改 XML(如下所示)时,text 先是子节点,然后是子节点,我得到了正确的输出。它与 XML 语法或 lxml 有关吗?由于我无法控制 XML,因为它是直接从 Internet 下载的,因此我需要一种方法来获取以前格式的文本。
<root>
<a>Some text in A node</a>
<b>Some text in B node<c>Some text in C node</c></b>
</root>
输出
Some text in A node
Some text in B node
【问题讨论】:
标签: python xml python-2.7 lxml