【问题标题】:Python: Access the next element in XML using ElementTreePython:使用 ElementTree 访问 XML 中的下一个元素
【发布时间】:2017-05-24 09:42:14
【问题描述】:

我的XML 文件没有标签,这使得解析不太友好。我正在尝试找到一个元素并对其进行更改:

...        
    <dict>
        <key>Arguments</key>
            <dict>
                <key>TestArchive</key
                <string>testArchive.tar</string>
            </dict>
            ....
    </dict>
...

我要做的是获取和更改“testArchive.tar”字符串,因为这个字符串可能每次都会改变,我使用TestArchive作为锚

from xml.etree import ElementTree
with open ('file.xml', 'rt') as f:
    tree = ElementTree.parse(f)

for item in tree.iter():
    if item.text == "TestArchive":
         ....

如何获得下一个元素?在我的情况下,哪个应该是我正在寻找的项目?

【问题讨论】:

    标签: python xml elementtree


    【解决方案1】:

    您需要在关键元素上使用getnext()。这将获得下一个兄弟姐妹。

    if item.text == "TestArchive":
        name = item.getnext()
        print name.text
    

    【讨论】:

    • 当我做if item.text == "TestArchive: item.getnext() - 元素没有属性“getnext”
    • 为什么要比较文本?你有item,如果条件为真,请转到item.getnext()
    • getnext() 返回元素的下一个同级元素。此方法在lxml 中可用,但在 ElementTree 标准模块中不可用(这是 OP 使用的)。
    • 有没有使用 elementtree 的解决方案? Getnext() 正是我所需要的。但我也在使用 elementtree。
    猜你喜欢
    • 2019-06-17
    • 2017-09-18
    • 2023-03-31
    • 2018-08-27
    • 1970-01-01
    • 1970-01-01
    • 2018-06-27
    • 1970-01-01
    • 2018-04-12
    相关资源
    最近更新 更多