python ElementTree具有子元素的元素的文本

时间:2013-10-31 06:36:52

标签: python xml elementtree

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

请参阅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?

2 个答案:

答案 0 :(得分:4)

使用Element.tail属性:

>>> import xml.etree.ElementTree as ET
>>> tree = ET.parse('test.xml')
>>> root = tree.getroot()
>>> print root.find(".//ref").tail
 abcd

答案 1 :(得分:3)

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

print root.find('test/ref').tail