XML解析

1、将字符串解析成特殊的对象

          from xml.etree import ElementTree as ET

          str_xml=open('xo.xml','r').read()//注意这里是打开一个文件,并将它读到内存。

          root=ET.XML(str_xml):将字符串解析成xml特殊对象,root代指xml文件的根节点。注意这个是最重要的一点。

还有一点最重要的如下所示:

利用ElementTree将文件直接解析成XML对象,这个是写一个文件路径就可以了,这个会直接将这个文件解析成另外一个对象。

from xml.etree import ElementTree as ET

tree=ET.parse("xo.xml")

然后利用这个对象去获取root节点

root=tree.getroot()//获取xml文件的根节点,一旦拿到根节点以后,所有的东西都在它的根节点里面包围着呢。相当于给了一个字典,字典里面所有的数据都可以拿到

root=对象,对象的功能都在它的类里边。这个对象的类是Element。根节点就是一个Element对象。要注意能够通过根节点找到下面的一个子节点·

root=根节点

son=root.find('year')这个依旧是个节点,这个节点也是一个Element对象。则通过这个对象也是可以找到Element类,从而去执行里边的方法。要注意对于每一个节点来说它都是一个Element对象。要注意节点的属性以及节点的内容。功能里边还有一个makeelement()函数。这个叫做创建一个新节点,每一个节点它都可以创建一个新的节点,仅仅只创建,先创建再插入

注意root.tag:就是获取根节点的标签

print(root.tag)

print(root.attrib)

print(root.text)

要注意这三个的特点就是后面没有加括号,接下来有一个加括号的

son=root.makeelement("标签名",attrib={'属性':"值1"})

root.append(son)//注意现在追加的都是在内存里面搞的,还不能算是追加

tree.write(out.xml)

注意makeelement仅仅是创建节点,所以不管是孙子创建还是儿子创建,还是老子创建都只是创建节点。

要注意所有的类都是可以创建对象的。所以可以试着尝试用,所以也可以用:

son=ET.Element('tt',{'kk':"vv"})

ele2=ET.Element('tt',{'kk':"123123"})

son.append(ele2)

root.append(son)

tree.write("out.xml")

对象可以通过一个类后面加一个括号完成。

 

 

2、将文件解析成特殊的对象

posted @ 2017-02-25 22:35  关泉珍  阅读(38)  评论(0)    收藏  举报