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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值