1

我有一个这样的xml文件:

<root processName="someName" >
    <Property name="FirstProp" value="one" />
    <Property name="SecondProp" value="two" />
    <Property name="ThirdProp" value="three" />
</root>

是否有可能使用 xmltodict 在不知道具体索引的情况下找到属性“SecondProp”并将值从“二”更改为“十七”?(以下)

代码:

import os
import xmltodict

text_file = open("testxml.xml", "r")
tst = text_file.read()

obj = xmltodict.parse(tst)

print(obj['root']['@processName'])
print(obj['root']['Property'][0])
print(obj['root']['Property'][1])
print(obj['root']['Property'][2])

输出:

someName
OrderedDict([('@name', 'FirstProp'), ('@value', 'one')])
OrderedDict([('@name', 'SecondProp'), ('@value', 'two')])
OrderedDict([('@name', 'ThirdProp'), ('@value', 'three')])
4

1 回答 1

0

您可以遍历obj['root']['Property']并找到您正在寻找的那个。使用 xmltodict 解析 XML 的方式是创建obj['root']['Property']一个列表而不是 dict。

例子:

for x in obj['root']['Property']:
    if x['@name'] == 'SecondProp':
        # do whatever you want
于 2017-06-26T20:10:52.977 回答