Faithfully Preserve Comments in Parsed XML

前端 未结 4 1913
甜味超标
甜味超标 2020-12-03 10:32

I\'d like to preserve comments as faithfully as possible while manipulating XML.

I managed to preserve comments, but the contents are getting XML-escaped.



        
4条回答
  •  情深已故
    2020-12-03 11:14

    Martin's Code didn't work for me. I modified the same with the following which works as intended.

    import xml.etree.ElementTree as ET
    
    class CommentedTreeBuilder(ET.XMLTreeBuilder):
        def __init__(self, *args, **kwargs):
            super(CommentedTreeBuilder, self).__init__(*args, **kwargs)
            self._parser.CommentHandler = self.comment
    
        def comment(self, data):
            self._target.start(ET.Comment, {})
            self._target.data(data)
            self._target.end(ET.Comment)
    

    This is the test

        parser=CommentedTreeBuilder()
        tree = ET.parse(filename, parser)
        tree.write('out.xml')
    

提交回复
热议问题