gpt4 book ai didi

Python 迷你王国 : Change Value of Node

转载 作者:数据小太阳 更新时间:2023-10-29 02:24:42 26 4
gpt4 key购买 nike

我正在使用 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 将以其原始形式打印。我做错了什么?

最佳答案

我不确定您是否可以使用 xml.dom.minidom 就地修改 DOM(不过,使用新值从头开始创建整个文档应该可行)。

无论如何,如果您接受基于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)

关于Python 迷你王国 : Change Value of Node,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8076928/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com