Python ElementTree myroot.findall()

问题描述 投票:0回答:1

我正在使用Python ElementTree处理XML文件。我的文件是这样的:

<a expr="bla" para="1"/>
<a expr="bla" para="1">
  <b expr="bli" para="2"/>
<a exp="bla" para="1"/>
...

我想打印expr,不管是a还是b。应该是这样的:

expr = "bla"
expr = "bla"
expr = "bli"
expr = "bla"

我写了这段代码:

for type_tag in myroot.findall('a'):
    expression = type_tag.get('expr')
    print("expr = ", expression)

但是我也不知道如何改进b的位置。

感谢您的帮助,

python elementtree
1个回答
0
投票

这很容易。

我有这个测试xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<test>
    <a expr="bla" para="1"/>
    <b expr="bli" para="2"/>
    <a expr="bla" para="1"/>
    <no a="1"/>
</test>

这是我的代码:

from lxml import etree
tree = etree.parse(r"test.xml")
rootNode = tree.getroot()
for node in rootNode:
    if node.get("expr"):
        print("expr =",node.get("expr"))

结果是:

expr = bla
expr = bli
expr = bla
© www.soinside.com 2019 - 2024. All rights reserved.