将 xmltodict 用于 Python,如何引用非特定 XML 属性 并更改值?
Using xmltodict for Python, how can I reference a non-specific XML property and change the value?
我有一个 xml 文件:
<root processName="someName" >
<Property name="FirstProp" value="one" />
<Property name="SecondProp" value="two" />
<Property name="ThirdProp" value="three" />
</root>
是否可以使用 xmltodict 在不知道具体索引的情况下找到 属性 "SecondProp" 并将值从 "two" 更改为 "seventeen" ? (下)
代码:
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')])
您可以遍历 obj['root']['Property']
并找到您要找的那个。使用 xmltodict 解析 XML 的方式使 obj['root']['Property']
成为列表而不是字典。
示例:
for x in obj['root']['Property']:
if x['@name'] == 'SecondProp':
# do whatever you want
我有一个 xml 文件:
<root processName="someName" >
<Property name="FirstProp" value="one" />
<Property name="SecondProp" value="two" />
<Property name="ThirdProp" value="three" />
</root>
是否可以使用 xmltodict 在不知道具体索引的情况下找到 属性 "SecondProp" 并将值从 "two" 更改为 "seventeen" ? (下)
代码:
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')])
您可以遍历 obj['root']['Property']
并找到您要找的那个。使用 xmltodict 解析 XML 的方式使 obj['root']['Property']
成为列表而不是字典。
示例:
for x in obj['root']['Property']:
if x['@name'] == 'SecondProp':
# do whatever you want