Я использую библиотеку Python minidom, чтобы попытаться манипулировать некоторыми XML-файлами. Вот пример файла:
<document>
<item>
<link>http://www.this-is-a-url.com/</link>
<description>This is some information!</description>
</item>
<item>
<link>http://www.this-is-a-url.com/</link>
<description>This is some information!</description>
</item>
<item>
<link>http://www.this-is-a-url.com/</link>
<description>This is some information!</description>
</item>
</document>
Что мне нужно сделать, это взять значение в «description» и поместить его в «link», чтобы оба сказали «Это некоторая информация!». Я пытался сделать это так:
#!/usr/bin/python
from xml.dom.minidom import parse
xmlData = parse("file.xml")
itmNode = xmlData.getElementsByTagName("item")
for n in itmNode:
n.childNodes[1] = n.childNodes[3]
n.childNodes[1].tagName = "link"
print xmlData.toxml()
Однако "n.childNodes [1] = n.childNodes [3]", кажется, связывает два узла вместе, поэтому, когда я делаю "n.childNodes [1] .tagName =" link "", чтобы исправить имя ОБА дочерние узлы становятся «связью», где раньше они оба были «описанием».
Кроме того, если я использую «n.childNodes [1] .nodeValue», изменения не будут работать, и XML будет напечатан в своем первоначальном виде. Что я делаю не так?