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、将文件解析成特殊的对象

浙公网安备 33010602011771号