Python 未在minidom中更新xml文档
我有一个小XML文件,如下所示:Python 未在minidom中更新xml文档,python,xml,minidom,Python,Xml,Minidom,我有一个小XML文件,如下所示: <cart> <items> <item id="1" /> </items> <items> <item id="2" /> </items> </cart> 我想在这两个下添加一个新项目。这是我的代码: doc = minidom.parseString('<cart><items>&l
<cart>
<items>
<item id="1" />
</items>
<items>
<item id="2" />
</items>
</cart>
我想在这两个
下添加一个新项目
。这是我的代码:
doc = minidom.parseString('<cart><items><item id="1" /></items><items><item id="2" /></items></cart>')
newItem = doc.createElement('item')
newItem.setAttribute('id', 'new item')
items = doc.getElementsByTagName('item')
for item in items:
item.parentNode.appendChild(newItem)
print(item.parentNode.toxml())
print(doc.toprettyxml())
doc=minidom.parseString(“”)
newItem=doc.createElement('item')文件
setAttribute('id','newItem')
items=doc.getElementsByTagName('item')
对于项目中的项目:
item.parentNode.appendChild(newItem)
打印(item.parentNode.toxml())
打印(doc.toprettyxml())
注意:我本可以使用items.appendChild,但以后需要
元素。这就是为什么要使用parentNode.appendChild
这是我得到的输出
<items><item id="1"/><item id="new item"/></items>
<items><item id="2"/><item id="new item"/></items>
<cart>
<items>
<item id="1" />
</items>
<items>
<item id="2" />
<item id="new item" />
</items>
</cart>
前两行是循环中print语句的输出
请参见,新元素不会添加到第一个items块下。但是,for循环中的print语句显示两个items块都添加了新元素,但是文档节点“doc”仅显示第二个items块下的项。链接到上的代码
我做错了什么有什么帮助吗 不能在多个位置使用同一元素。当您附加到第二个节点时,newItem将从第一个节点中删除。您可以改为复制节点:
doc = minidom.parseString('<cart><items><item id="1" /></items><items><item id="2" /></items></cart>')
newItem = doc.createElement('item')
newItem.setAttribute('id', 'new item')
items = doc.getElementsByTagName('item')
for item in items:
item.parentNode.appendChild(newItem.cloneNode(True))
print(item.parentNode.toxml())
print(doc.toprettyxml())
doc=minidom.parseString(“”)
newItem=doc.createElement('item')文件
setAttribute('id','newItem')
items=doc.getElementsByTagName('item')
对于项目中的项目:
item.parentNode.appendChild(newItem.cloneNode(True))
打印(item.parentNode.toxml())
打印(doc.toprettyxml())
Oooops!谢谢,我不知道