2013-12-08 71 views
2

在XML替換屬性的值我有以下XML:如何使用Python minidom命名

<country name="Liechtenstein"> 
    <rank>1</rank> 
    <year>2008</year> 
    <gdppc>141100</gdppc> 
    <neighbor direction="E" name="Austria"/> 
    <neighbor direction="W" name="Switzerland"/> 
</country> 

我要替換值「列支敦士登」與「德」,所以結果應該是這樣的:

<country name="Germany"> 
    <rank>1</rank> 
    <year>2008</year> 
    <gdppc>141100</gdppc> 
    <neighbor direction="E" name="Austria"/> 
    <neighbor direction="W" name="Switzerland"/> 
</country> 

到目前爲止,我到這一點:

from xml.dom import minidom 
xmldoc = minidom.parse('C:/Users/Torah/Desktop/country.xml') 
print xmldoc.toxml() 
country = xmldoc.getElementsByTagName("country") 
firstchild = country[0] 
print firstchild.attributes["name"].value 
#simple string mathod to replace 
print firstchild.attributes["name"].value.replace("Liechtenstein", "Germany") 
print xmldoc.toxml() 
+0

你有什麼這麼遠嗎? –

+0

我可以訪問該值,但不知道如何替換它。 – Coddy

+0

最好包含您擁有的代碼,以便可以更新/修改以替換值。 –

回答

2

以下行實際上並沒有改變XML:

print firstchild.attributes["name"].value.replace("Liechtenstein", "Germany") 

只得到值,在該字符串,並打印字符串替換德國列支敦士登。它不會修改XML文檔中的值。

您應該直接賦新值:

firstchild.attributes["name"].value = "Germany" 
+0

我不工作。 – Coddy

+0

@Coddy我試過了,它確實有效。什麼不行? –

2

西面的線做的工作。

或者,你可以這樣做:

firstchild.setAttribute('name', 'Germany')