XML文件解析 - 从孩子的孩子那里获取数据

时间:2015-06-18 15:27:34

标签: python xml parsing python-3.x

我知道如何从子标记中获取数据,但我想从“root”标记的子标记的子标记中获取数据。 我们可以使用这个数据库,例如:

<DB>
    <Entry>
        <Name></Name>
        <DisplayName>Assembly.iam</DisplayName>
        <Scalar>
          <Name>d0</Name>
          <DisplayName>d0 (value = 0 mm)</DisplayName>
          <Value>0</Value>
        </Scalar>
    </Entry>
</DB>

以下是我的代码,仅从子标记中获取数据:

from xml.etree import ElementTree

tree = ElementTree.parse("C:\\Users\\Vince\\test.xml")
root = tree.getroot()
for entry in root.findall('Entry'):
    name = entry.find('DisplayName').text
    print(name)

输出:Assembly.iam

但是现在,我该如何显示d0 (value = 0 mm)

1 个答案:

答案 0 :(得分:2)

要打印所有显示名称,您应该尝试 -

dnames = entry.findall(".//DisplayName")
for x in dnames:
    print(x.text)

要获取<Scalar>下的特定显示名称,您可以执行以下操作 -

name = entry.find('./Scalar/DisplayName').text
print(name)