学习笔记-模块之xml文件处理

Posted zhong2018

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习笔记-模块之xml文件处理相关的知识,希望对你有一定的参考价值。

处理XML文档
遍历xml文档
 1 #遍历xml文档的子标签
 2 for child in root:
 3     print(child.tag,child.attrib)
 4              #子标签名       属性
 5     for i in child:
 6         print(i.tag,i.text)
 7              #子标签名   属性
 8              #字节数标签不能遍历出属性,输出为空
 9         #改进
10         print(i.tag,i.text,i.attrib)
11 
12 #遍历自己需要的 例如只遍历‘year‘节点
13 for node in root.iter(year):
14     print(node.tag,node.text)
修改 
 1 import xml.etree.ElementTree as ET
 2 
 3 tree=ET.parse(xml_test.xml)  
 4 root=tree.getroot()
 5 
 6 for node in root.iter(year):
 7     new_year=int(node.text)+1
 8     node.text=str(new_year)
 9         #赋值
10     node.set(updated,yes)
11           给year标签增加属性
12 
13 tree.write(xml_test.xml)
删除node
1 tree=ET.parse(xml_test.xml)  
2 root=tree.getroot()
3 
4 for country in root.findall(country):  #遍历country
5     rank = int(country.find(rank).text)  #找出rank
6     if rank > 50:
7         root.remove(country)
8 
9 tree.write(output.xml) #写入文件为output.xml文件中

 

新建xml文件

 1 import xml.etree.ElementTree as ET
 2 
 3 new_xml = ET.Element("personinfolist")  #创建根节点
 4 personinfo = ET.SubElement(new_xml, "personinfo", attrib={"enrolled": "yes"})
 5                           #是new_xml的子节点
 6 name = ET.SubElement(personinfo, "name")
 7 name.text=Jeck
 8 age = ET.SubElement(personinfo, "age", attrib={"checked": "no"})
 9                    #是personnifo的子节点
10 sex = ET.SubElement(personinfo, "sex")
11 sex.text=Men
12 age.text = 33 #给age节点赋值
13 personinfo2 = ET.SubElement(new_xml, "personinfo", attrib={"enrolled": "no"})
14 name = ET.SubElement(personinfo2, "name")
15 name.text=Ailice
16 age = ET.SubElement(personinfo2, "age")
17 age.text = 19
18 
19 et = ET.ElementTree(new_xml)  # 生成文档对象
20 et.write("test.xml", encoding="utf-8", xml_declaration=True)
21         #写入到test.xml文件中              声明是xml格式的
22 
23 ET.dump(new_xml)  # 打印生成的格式

 

以上是关于学习笔记-模块之xml文件处理的主要内容,如果未能解决你的问题,请参考以下文章

学习笔记-模块之标准库shutil

Python学习笔记——基础篇第五周——常用模块学习

Python学习笔记(二十一)

VUE学习笔记:19.模块化开发之webpack处理ES6语法

VUE学习笔记:16.模块化开发之webpack打包css文件

Python学习笔记——基础篇第六周——shutil模块