Faithfully Preserve Comments in Parsed XML

前端 未结 4 1926
甜味超标
甜味超标 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:01

    Looks like both answers from @Martin and @sukhbinder didn't work for me... So made this as a workable completed solution on python 3.x

    from xml.etree import ElementTree
    
    string = '''
    
        
        
            1
            2008
            141100
            
            
        
    '''
    
    class CommentedTreeBuilder(ElementTree.TreeBuilder):
        def comment(self, data):
            self.start(ElementTree.Comment, {})
            self.data(data)
            self.end(ElementTree.Comment)
    
    parser = ElementTree.XMLParser(target=CommentedTreeBuilder())
    tree = ElementTree.fromstring(string, parser)
    print(tree.find("./*[0]").text)
    # or ElementTree.parse(filename, parser)
    

提交回复
热议问题