Я использую следующий код Python для поиска узла в файле XML и изменения значения атрибута одного из его дочерних элементов. Изменения происходят правильно, когда узел отображается с помощью toxml (). Но когда это записывается в файл, атрибуты перестраиваются (как видно из исходного и конечного XML ниже). Кто-нибудь может объяснить, как и почему это произошло?
Код Python:
#!/usr/bin/env python
import xml
from xml.dom.minidom import parse
dom=parse("max.xml")
#print "Please enter the store name:"
for sku in dom.getElementsByTagName("node"):
if sku.getAttribute("name") == "store":
sku.childNodes[1].childNodes[5].setAttribute("value","Delhi,India")
print sku.toxml()
xml.dom.ext.PrettyPrint(dom, open("new.xml", "w"))
часть исходного XML:
<node name='store' node_id='515' module='mpx.lib.node.simple_value.SimpleValue' config_builder='' inherant='false' description='Configurable Value'>
<match>
<property name='1' value='point'/>
<property name='2' value='0'/>
<property name='val' value='Store# 09204 Staten Island, NY'/>
<property name='3' value='str'/>
</match>
</node>
Конечный XML:
<node config_builder="" description="Configurable Value" inherant="false" module="mpx.lib.node.simple_value.SimpleValue" name="store" node_id="515">
<match>
<property name="1" value="point"/>
<property name="2" value="0"/>
<property name="val" value="Delhi,India"/>
<property name="3" value="str"/>
</match>
</node>