XMLs

用TinyXML2解析XML
前言:上一篇有讲到用Python的一个库ElementTree解析XML文件,方便是方便,一开始也是贪图其方便所以采用这个方案的,但是写完之后出现一个问题,原XML文件的节点属性里嵌有一个VB脚本,VB脚本语法是由严格缩进规约的,解析完后发现VB脚本格式全乱,导致VB失效,这样这个XML文件就相当于坏了,因为只能另寻他法,但是发现这个Python很难解决节点属性格式的问题,因此只能考虑二进制读写文件。最后采用了TinyXML2这个C++的库。 TinyXML2 这个C++库是比较成熟的解析XML文件的库,他的实现是可以二进制读写文件的,所以极为满足我的需求 这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。 DOM模型即文档对象模型,是将整个文档分成多个元素(如书、章、节、段等),并利用树型结构表示这些元素之间的顺序关系以及嵌套包含关系。 在GitHub上clone这个库到本地仓库上来,地址为:https://github.com/leethomason/tinyxml2.git Read more

ElementTree解析XML文件
前言:Python对于解析数据有着很完善的各种库和社区,比如处理JSON、CSV、HTML、XML、Excel等等格式的数据,今天用ElementTree修改了XML,故记录一下。 先放样例XML <props> <prop class="CODEditProperties" id="50"/> <prop class="CODEditProperties" id="40" ccontain="1"/> <prop class="CODFillProperties" id="500" clr="0"> <matchanimatestyle/> <matchanimateflash/> </prop> </props> <children> <child class="CODRectComponent" pts="0,0;86,0;86,229;0,229;" type="Rectangle" name="Rectangle751" id="182308005" rect="0,0,87,76"> <xform m00="1. Read more