2011-04-18 59 views
4

我想在xml文件中註釋一個特定的XML元素。我可以刪除該元素,但我寧願將其留下評論,以備後用。如何註釋掉一個XML元素(使用minidom DOM實現)

我在那刪除元素的那一刻使用的代碼看起來是這樣的:

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

我想修改此,使其評論元素出來而不是將其刪除。

回答

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

你可以用beautifulSoup來做到這一點。閱讀目標標籤,創建適當的註釋標記和replace目標標籤

例如,創建註釋標籤:

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