python的ElementTree庫如何讀取xml文件裏的註釋

 

用於讀取XML文件的elementTree庫的時遇到的問題-----想要讀取xml裏的註釋。

類似於下面的這種格式的註釋。

<!--Thisisacomment-->


問題背景:

通常使用elmentTree可以進行解析XML文件,它會將其保存爲一個樹形結構,常用的讀取xml的方法。

import xml.etree.ElementTree as ET----------導入xml模塊
root = ET.parse('GHO.xml')------------------分析指定xml文件
tree = root.getroot()-----------------------獲取第一標籤
data = tree.find('Data')--------------------查找第一標籤中'Data'標籤
for obs in data:----------------------------歷遍'Data'中的所有標籤
    for item in obs:------------------------歷遍'Data'中的'obs'標籤下的所有標籤
        key = item.attrib()-----------------提取key值參數
        print(list(key))--------------------輸出key值

 


方法一:使用該方法可以使得在生成樹的時候獲得本來有的註釋。

#!/usr/bin/env python
# CommentedTreeBuilder.py


from xml.etree import ElementTree

class CommentedTreeBuilder(ElementTree.TreeBuilder):
    def __init__(self, *args, **kwargs):
        super(CommentedTreeBuilder, self).__init__(*args, **kwargs)
       

    def comment(self, data):
        self.start(ElementTree.Comment, {})
        self.data(data)
        self.end(ElementTree.Comment)

然後在主代碼使用下面的方法。

import xml.etree.ElementTree as ET
parser = ET.XMLParser(target=CommentedTreeBuilder())

即可以讀取到註釋了。


方法二,直接使用lxml庫

或者使用下面的方式也可以。

import lxml.etree as ET

tree = ET.parse(filename)

 

#參考鏈接:

https://hant-kb.kutu66.com/python/post_13084240

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章