我正在使用 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>
我需要做的就是获取“描述”中的值并将其放入“链接”中,这样两者都会说“这是一些信息!”。我尝试这样做:
#!/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 会以其原始形式打印。我究竟做错了什么?
我不确定你是否可以修改 DOMxml.dom.minidom
(使用新值从头开始创建整个文档应该可以)。
无论如何,如果您接受基于的解决方案xml.etree.ElementTree
(我强烈建议使用它,因为它提供了更友好的界面),那么你可以使用以下代码:
from xml.etree.ElementTree import ElementTree, dump
tree = ElementTree()
tree.parse('file.xml')
items = tree.findall('item')
for item in items:
link, description = list(item)
link.text = description.text
dump(tree)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)