我想注释掉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)