Python,ElementTree模块处理XML时注释无法读取和保存的问题


from xml.etree import ElementTree

class CommentedTreeBuilder ( ElementTree.XMLTreeBuilder ):

def __init__ ( self, html = 0, target = None ):

ElementTree.XMLTreeBuilder.__init__( self, html, target )

self._parser.CommentHandler = self.handle_comment

def handle_comment ( self, data ):

self._target.start( ElementTree.Comment, {} )

self._target.data( data )

self._target.end( ElementTree.Comment )

#示例:

xml = ElementTree.parse( r‘c:\test.xml‘, parser = CommentedTreeBuilder() )

ElementTree.dump( xml )

#如果不加这个Handler,则读取和保存时注释会自动去掉(stripped out)

Python,ElementTree模块处理XML时注释无法读取和保存的问题,布布扣,bubuko.com

时间: 2025-01-04 04:47:15

Python,ElementTree模块处理XML时注释无法读取和保存的问题的相关文章

[python 学习] 使用 xml.etree.ElementTree 模块处理 XML

---恢复内容开始--- 导入数据(读文件和读字符串) 本地文件 country_data.xml <?xml version="1.0"?> <data> <country name="Liechtenstein"> <rank>1</rank> <year>2008</year> <gdppc>141100</gdppc> <neighbor nam

python模块之xml.etree.ElementTree

Python有三种方法解析XML,SAX,DOM,以及ElementTree###1.SAX (simple API for XML )       pyhton 标准库包含SAX解析器,SAX是一种典型的极为快速的工具,在解析XML时,不会占用大量内存.但是这是基于回调机制的,因此在某些数据中,它会调用某些方法进行传递.这意味着必须为数据指定句柄,以维持自己的状态,这是非常困难的. ###2.DOM(Document Object Model)       与SAX比较,DOM典型的缺点是比较

python 常用模块 time random os模块 sys模块 json &amp; pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则

python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib  subprocess logging re正则 转自老男孩老师Yuan:http://www.cnblogs.com/yuanchenqi/articles/5732581.html 模块&包(* * * * *) 模块(modue)的概念: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,

python configparse模块&amp;xml模块

configparse模块 用于生成和修改常见配置文档,当前模块的名称在 python 3.x 版本中变更为 configparser. [DEFAULT] serveraliveinterval = 45 compression = yes compressionlevel = 9 forwardx11 = yes [bitbucket.org] user = hg [topsecret.server.com] port = 50022 forwardx11 = no [group] impo

python导入模块时的执行顺序

当python导入模块,执行import语句时,到底进行了什么操作?按照python的文档,她执行了如下的操作: 第一步,创建一个新的module对象(它可能包含多个module) 第二步,把这个module对象插到sys.module中 第三步,装载module的代码(如果需要,则必须先编译) 第四步,执行新的module中对应的代码. 在执行第三步时,首先需要找到module程序所在的位置,搜索的顺序是: 当前路径(以及从当前目录指定的sys.path),pythonpath,然后是pyth

Python基础知识之xml模块

转载自:http://www.cnblogs.com/alex3714/articles/5161349.html XML处理模块: ml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融行业的很多系统的接口还主要是xml. xml的格式如下,就是通过<>节点来区别数据结构的: <?xml version="1.0"?> <dat

Python 基础 - 4.10 xml处理模块

xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融行业的很多系统的接口还主要是xml. xml的格式如下,就是通过<>节点来区别数据结构的: <?xml version="1.0"?> <data> <country name="Liechtenstein"> <rank upda

python-23 xml.etree.ElementTree模块

xml.etree.ElementTree模块 Element类型是一种灵活的容器对象,用于在内存中存储结构化数据. xml.etree.ElementTree模块在应对恶意结构数据时显得并不安全. 每个element对象都具有以下属性: 1. tag:string对象,表示数据代表的种类. 2. attrib:dictionary对象,表示附有的属性. 3. text:string对象,表示element的内容. 4. tail:string对象,表示element闭合之后的尾迹. 5. 若干

Python如何用dom模块生成XML文件

Python如何用dom模块生成XML文件呢? 主要方法三点: 首先.生成XML节点(node) createElement("node_name") 然后.给节点添加属性值(Attribute) node.setAttribute("att_name", "arr_value") 最后.节点的标签值(data) createTextNode("node_value") 其中第1.3点在创建完节点(节点值)之后,还需使用下面的