我遇到过minidom API来获取子节点,获取父节点,设置和获取属性,删除它们。
考虑以下XML:
<TECH_COMPANIES>
<APPLE>
<IPHONE>
<IPHONE6>sameOld </IPHONE6>
</IPHONE>
<IPAD>nice</IPAD>
<MAC>awesome</MAC>
</APPLE>
<GOOGLE>
<GMAIL>BREEZE</GMAIL>
<PICASA>COOL_SHARE</PICASA>
</GOOGLE>
<LENOVO> </LENOVO>
<SAMSUNG>
<NOTE1>
<GORRILLA_GLASS ScratchProof="yes" Tranparency="99%" Smoothness="85%"/>
</NOTE1>
</SAMSUNG>
</TECH_COMPANIES>
APPLE,GOOGLE,LENOVO和SAMSUNG是TECH_COMPANIES的子元素节点。 假设我想将元素节点'APPLE'的名称更改为'APPLEinc,我该如何更改它?
答案 0 :(得分:3)
minidom为您提供了标准的DOM API实现。 W3C DOM API无法重命名元素;相反,您应该重新创建元素并从旧元素重新填充它。至少可以说,这很痛苦。所以程序将是:
Document.createElement()
Element
interface上的属性方法跨任何属性进行复制。Node
interface。您最好切换到ElementTree API,而不是使用DOM API。这允许您以更加pythonic的方式操纵树:
from xml.etree import ElementTree as ET
root = ET.fromstring(xml_string)
apple = root.find('.//APPLE')
apple.tag = 'APPLEinc'
xml_string = ET.tostring(root)