ich eine XML-Datei, die ich einige Elemente, die vorher kommentiert, und jetzt will ich sie Kommentar- ..Entfernen Sie alle Kommentare in Python 3 lxml
ich diese Struktur haben
<parent parId="22" attr="Alpha">
<!--<reg regId="1">
<cont>There is some content</cont><cont2 attr1="val">Another content</cont2>
</reg>
--></parent>
<parent parId="23" attr="Alpha">
<reg regId="1">
<cont>There is more content</cont><cont2 attr1="noval">Morecont</cont2>
</reg>
</parent>
<parent parId="24" attr="Alpha">
<!--<reg regId="1">
<cont>There is some content</cont><cont2 attr1="val">Another content</cont2>
</reg>
--></parent>
Ich möchte Kommentieren Sie alle Kommentare der Datei. Das ist auch das kommentierte Element und ich möchte sie auskommentieren.
Ich bin in der Lage, die Elemente zu finden, die Kommentar mit Xpath sind. Hier ist mein Codeschnipsel.
def unhide_element():
path = r'path_to_file\file.xml'
xml_parser = et.parse(path)
comments = root.xpath('//comment')
for c in comments:
print('Comment: ', c)
parent_comment = c.getparent()
parent_comment.replace(c,'')
tree = et.ElementTree(root)
tree.write(new_file)
Die Ersetzung funktioniert jedoch nicht, da ein anderes Element erwartet wird.
Wie kann ich das beheben?
Großartig, das hat funktioniert. Ich weiß jedoch nicht, warum meine lxml-Version nicht funktioniert, wenn ich zuerst die Datei "root"() verwende. Ich kann nicht direkt im ElementTree mit Parse arbeiten. – TMikonos