簡體   English   中英

使用xmltodict for 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']成為一個列表,而不是一個dict。

例:

for x in obj['root']['Property']:
    if x['@name'] == 'SecondProp':
        # do whatever you want

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM