4

当我尝试阅读有孩子的元素的文本时,它给出了无:

查看 xml(比如 test.xml):

<?xml version="1.0"?>
<data>
    <test><ref>MemoryRegion</ref> abcd</test>
</data>

和想要读取'abcd'的python代码:

import xml.etree.ElementTree as ET
tree = ET.parse('test.xml')
root = tree.getroot()
print root.find("test").text

当我运行这个 python 时,它给出了 None,而不是 abcd。

在这种情况下如何阅读 abcd?

4

2 回答 2

5

使用Element.tail属性:

>>> import xml.etree.ElementTree as ET
>>> tree = ET.parse('test.xml')
>>> root = tree.getroot()
>>> print root.find(".//ref").tail
 abcd
于 2013-10-31T06:46:07.040 回答
4

ElementTree有一个相当不同的 XML 视图,它更适合嵌套数据。 .text是开始标签之后的数据。 .tail是结束标记之后的数据。所以你要:

print root.find('test/ref').tail
于 2013-10-31T06:47:07.190 回答