Python:使用 ElementTree 访问 XML 中的下一个元素



我的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":
         ....

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

我能找到的唯一方法是使用 enumerate() 并将父级索引为列表。在您的情况下:

items = list(tree.iter())
for i, item in enumerate(items):
    if item.text == "TestArchive":
         next_item = items[i + 1]
您需要

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

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

最新更新