有没有方法可以更改minidompython中的元素节点名?

2024-09-25 02:31:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我遇到过minidomapi来获取子对象、获取父对象、设置和获取属性、删除它们。在

考虑以下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”的名称更改为“APPLEinc”,如何更改它?在


Tags: 对象元素applemacgoogletechgmailcompanies
1条回答
网友
1楼 · 发布于 2024-09-25 02:31:57

minidom为您提供了一个标准的ishdomapi实现。w3cdomapi无法重命名元素;相反,您需要重新创建元素并从旧元素中重新填充它。至少可以说,这是痛苦的。因此,程序将是:

  • 使用^{}
  • 使用^{} interface上的属性方法跨所有属性复制。在
  • 使用^{} interface将旧节点的所有子节点追加到新节点。在

与其使用domapi,不如切换到ElementTree API;这允许您以更为python的方式操作树:

from xml.etree import ElementTree as ET

root = ET.fromstring(xml_string)
apple = root.find('.//APPLE')
apple.tag = 'APPLEinc'
xml_string = ET.tostring(root)

相关问题 更多 >