如何注释掉一个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()

我想修改这一点,使它注释的元素,而不是删除它。

下面的解决方案正是我想要的。

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()

你可以用beautifulSoup来做。读取目标标记,创建适当的注释标记并替换目标标记

例如,创建注释标签:

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

相关内容

  • 没有找到相关文章

最新更新