博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python模块详解 XML
阅读量:6896 次
发布时间:2019-06-27

本文共 2079 字,大约阅读时间需要 6 分钟。

 XML模块

XML是实现不同语言或程序之间进行数据交换的协议,和json一样。

XML格式:

Tove
Jani
Reminder
Don't forget me this weekend!

 读XML

简单读取XML内容:

import xml.etree.ElementTree as ETtree = ET.parse('xml_test.xml')root = tree.getroot()print(root) #XML对象print(root.tag) #XML最外层标签

 遍历XML:

import xml.etree.ElementTree as ETtree = ET.parse('xml_test.xml')root = tree.getroot()for child in root:    print(child.tag,child.attrib) #to {'name': 'to'} 遍历标签、属性    for i in child:        print(i.tag,i.text) #content Jim 遍历标签、文本        break    break

 只遍历某一个标签:

for node in root.iter('content'):    print(node.tag,node.text) #content Jim #content Jani #content Reminder #content Don't forget me this weekend!

 修改XML

for node in root.iter('content'):    content = node.text  #获取内容    new_content = str('new_content_'+content)    node.text = new_content  #修改内容    node.set('update','yes') #添加属性tree.write('xml_test.xml') #保存到原文件则覆盖之前内容,保存到新文件则新建

 删除XML

for node in root.findall('to'): #找到to这个标签    content = len(node.find('content').text) #继续找到content的标签,并且计算content内容长度    if content > 2:           root.remove(node) #移除这个标签tree.write('xml_test3.xml') # 将结果重新写到文件

创建XML

import xml.etree.ElementTree as ETnew_xml = ET.Element("name_list")  #创建节点personinfo = ET.SubElement(new_xml,"personinfo",attrib={"enrolled":"yes"}) #创建子节点、子节点名称、属性age = ET.SubElement(personinfo,'age',attrib={"checked":"no"})age.text = '33' #添加子节点文本内容name = ET.SubElement(personinfo,"name")name.text = 'jim'personinfo2 = ET.SubElement(new_xml,"personinfo",attrib={"enrolled":"no"})age = ET.SubElement(personinfo2,'age')age.text = '20'name = ET.SubElement(personinfo2,'name')name.text = 'Lily'et =ET.ElementTree(new_xml) #生成文档对象et.write('xml_test5.xml',encoding='utf-8',xml_declaration=True) #生成xml文件并指定字符集和ET.dump(new_xml) #打印生成格式

 

创建后的结果:

33
jim
20
Lily

 

转载于:https://www.cnblogs.com/qing-chen/p/7289202.html

你可能感兴趣的文章
vs2017莫名自动退出调试状态可以尝试一下如下的方法
查看>>
Adaptive Execution让Spark SQL更高效更好用
查看>>
快手服务治理平台KESS的设计理念和实战
查看>>
微软发布Azure Cosmos DB产品以及新的物联网解决方案
查看>>
与Bob McWhirter的问答:WildFly Swarm更名为Thorntail项目
查看>>
Java 11正式发布,新特性解读
查看>>
《Fit for Purpose》作者访谈录
查看>>
与Brian Goetz聊Java的数据类
查看>>
Emoji 上的 Swift:换一种视角来理解 Swift 高阶函数
查看>>
区块链将颠覆游戏业,游戏内商品未来也可带出游戏、自由交易
查看>>
Linux/Mac安装oh-my-zsh后不执行~/.bash_profile、~/.bashrc解决办法
查看>>
安卓开发_深入理解广播机制
查看>>
技术大咖云集,GIAC 2017全球互联网架构大会圆满落幕
查看>>
php取整函数ceil,floor,round,intval函数的区别
查看>>
elk5.x环境搭建与常用插件安装
查看>>
MySQL大表删除导致服务器变慢的分析
查看>>
windows server操作系统一定要关闭开机磁盘自检
查看>>
Java解析Excel文件
查看>>
MySQL数据类型简介
查看>>
由于未预料的错误,现在无法使用nautilus
查看>>