如何注释掉XML元素(使用minidom DOM实现)

时间:2011-04-18 07:24:17

标签: python xml minidom

我想在xml文件中注释掉特定的XML元素。我可以删除该元素,但我更愿意将其注释掉,以防以后需要。

我删除元素时使用的代码如下所示:

from xml.dom import minidom

doc = minidom.parse(myXmlFile)
for element in doc.getElementsByTagName('MyElementName'):
if element.getAttribute('name') in ['AttribName1', 'AttribName2']:
    element.parentNode.removeChild(element)
f = open(myXmlFile, "w")
f.write(doc.toxml())
f.close()

我想修改它,以便它将元素注释掉而不是删除它。

2 个答案:

答案 0 :(得分:5)

以下解决方案完全符合我的要求。

from xml.dom import minidom

doc = minidom.parse(myXmlFile)
for element in doc.getElementsByTagName('MyElementName'):
    if element.getAttribute('name') in ['AttrName1', 'AttrName2']:
        parentNode = element.parentNode
        parentNode.insertBefore(doc.createComment(element.toxml()), element)
        parentNode.removeChild(element)
f = open(myXmlFile, "w")
f.write(doc.toxml())
f.close()

答案 1 :(得分:0)

您可以使用beautifulSoup执行此操作。阅读目标代码,创建适当的评论标记和replace目标代码

例如,创建评论标记:

from BeautifulSoup import BeautifulSoup
hello = "<!--Comment tag-->"
commentSoup = BeautifulSoup(hello)