python - XML 文件解析 - 从子级的子级获取数据

标签 python xml parsing python-3.x

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

<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(值 = 0 毫米)

最佳答案

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

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

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

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

关于python - XML 文件解析 - 从子级的子级获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30919643/

相关文章:

python - Linux 上的 Twisted 安装失败

python - 属性错误: head not found when printing head() in Python

java - 在java中传递XML请求时出现问题

Python xml - 删除空格以对齐 xml 文档

c++ - 使用 TinyXML 获取标签之间的内容

parsing - 使用 YAML.mapping 解析复杂的 YAML 结构

c++ - 如何使用 boost 解析 XML 中的 2 个以上级别

python - Django 中的静态根和静态 Url 混淆

python - Unicode解码错误: 'ascii' codec can't decode

java - 如何使用jsoup获取这个值?