python 之 XML的基本应用总结
1.XML 的特征:xml即可扩展标记语言,它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。从结构上,很像HTML超文本标记语言。但他们被设计的目的是不同的,超文本标记语言被设计用来显示数据,其焦点是数据的外观。它被设计用来传输和存储数据,其焦点是数据的内容
那么它有如下特征:
- 它是有标签对组成,<aa></aa>
- 标签可以有属性:<aa id='123'></aa>
- 标签对可以嵌入数据:<aa>abc</aa>
- 标签可以嵌入子标签(具有层级关系)
例子:创建一个XML文件
<?xml version="1.0"?> <data><country name="Liechtenstein"><rank updated="yes">2</rank><year>2008</year><gdppc>141100</gdppc><neighbor name="Austria" direction="E"/><neighbor name="Switzerland" direction="W"/></country><country name="Singapore"><rank updated="yes">5</rank><year>2011</year><gdppc>59900</gdppc><neighbor name="Malaysia" direction="N"/></country><country name="Panama"><rank updated="yes">69</rank><year>2011</year><gdppc>13600</gdppc><neighbor name="Costa Rica" direction="W"/><neighbor name="Colombia" direction="E"/></country> </data>
步骤:
【XML操作】
import xml.etree.ElementTree as ETtree = ET.parse("xmltest.xml") root = tree.getroot() print(root.tag)#遍历xml文档 for child in root:print(child.tag, child.attrib)for i in child:print(i.tag,i.text)#只遍历year 节点 for node in root.iter('year'):print(node.tag,node.text) #修改和删除xml文档内容 import xml.etree.ElementTree as ETtree = ET.parse("xmltest.xml") root = tree.getroot()#修改 for node in root.iter('year'):new_year = int(node.text) + 1node.text = str(new_year)node.set("updated","yes")tree.write("xmltest.xml")#删除node for country in root.findall('country'):rank = int(country.find('rank').text)if rank > 50:root.remove(country)tree.write('output.xml')
【自己创建xml文档】
import xml.etree.ElementTree as ETnew_xml = ET.Element("namelist") name = ET.SubElement(new_xml,"name",attrib={"enrolled":"yes"}) age = ET.SubElement(name,"age",attrib={"checked":"no"}) sex = ET.SubElement(name,"sex") sex.text = '33' name2 = ET.SubElement(new_xml,"name",attrib={"enrolled":"no"}) age = ET.SubElement(name2,"age") age.text = '19'et = ET.ElementTree(new_xml) #生成文档对象 et.write("test.xml", encoding="utf-8",xml_declaration=True)ET.dump(new_xml) #打印生成的格式
总结
minidom.parse(filename) 加载读取XML文件doc.documentElement 获取XML文档对象node.getAttribute(AttributeName) 获取XML节点属性值node.getElementsByTagName(TagName) 获取XML节点对象集合node.childNodes #返回子节点列表。 node.childNodes[index].nodeValue 获取XML节点值node.firstChild #访问第一个节点。等价于pagexml.childNodes[0] doc = minidom.parse(filename) doc.toxml('UTF-8') 返回Node节点的xml表示的文本Node.attributes["id"] a.name #就是上面的 "id" a.value #属性的值 访问元素属性
转载于:https://www.cnblogs.com/lanyinhao/p/9176274.html
python 之 XML的基本应用总结相关推荐
- python读取xml文件报错ValueError: multi-byte encodings are not supported
1.在使用python对xml文件进行读取时,提示ValueError: multi-byte encodings are not supported 很多贴子上说把xml的编码格式改为,就可以正常执 ...
- python之XML文件解析
python对XML的解析 常见的XML编程接口有DOM和SAX,这两种接口处理XML文件的方式不同,当然使用场合也不同. python有三种方法解析XML,分别是SAX,DOM,以及ElementT ...
- python 解析xml
在工作中很多时候都要用到xml,使用这个时候难免会设计到解析他,然后就研究了一下python解析xml问题,看了很多东西,python有很多解析xml的包,但是也折腾我好一段时间,最后选择了这个方法. ...
- 用python将xml文件转换为txt文件_python代码xml转txt实例
为了训练深度学习模型,经常要整理大量的标注数据,需统一不同格式的标注数据,一般情况下习惯读取TXT格式的数据.但实际中经常遇到XML格式的标注数据,在此举例:1.读取XML标注数据:2.写入TXT文件 ...
- python读xml文件生成头文件_Python根据指定文件生成XML的方法
因项目需要根据指定格式的文件生成XML标注文件,可以方便使用LabelImg打开进行编辑和查看.其原始文件默认使用逗号进行分隔,如下所示: 第1个值:原始图片中切图小文件,以AIpng_x,其中x代表 ...
- xml python gb2312_使用Python处理XML格式数据的方法介绍
本文实例讲述了Python处理XML格式数据的方法.分享给大家供大家参考,具体如下: 这里的操作是基于Python3平台. 在使用Python处理XML的问题上,首先遇到的是编码问题. Python并 ...
- python生成xml文件工具_Python根据指定文件生成XML的方法
因项目需要根据指定格式的文件生成XML标注文件,可以方便使用LabelImg打开进行编辑和查看.其原始文件默认使用逗号进行分隔,如下所示: 第1个值:原始图片中切图小文件,以AIpng_x,其中x代表 ...
- Python和xml简介
python提供越来越多的技术来支持xml,本文旨在面向初学利用Python处理xml的读者,以教程的形式介绍一些基本的xml出来概念.前提是读者必须知道一些xml常用术语. 先决条件 本文所有的例子 ...
- python解析xml+得到pascal voc xml格式用于目标检测+美化xml
1.python解析xml img_path='./data/001.tif'xml_path='./xml/001.xml'img=cv2.imread(img_path)# cv2.imshow( ...
- python 打印xml文档树_Python构建XML树结构的方法示例
本文实例讲述了Python构建XML树结构的方法.分享给大家供大家参考,具体如下: 1.构建XML元素 #encoding=utf-8 from xml.etree import ElementTre ...
最新文章
- 客快物流大数据项目(十七):自定义镜像mycentos
- C++ 笔记(11)— 循环(while/for/do while/嵌套循环、break/continue/goto 循环控制语句)
- 【leetcode】Linked List Cycle I II
- 设置dialog显示,自定义时间到后dialog消失
- [JSOI2008]火星人
- 活跃用户数怎么计算_不懂LTV,怎么做用户增长?详解用户生命周期价值计算方法...
- Vitamio中文API文档(1)—— MediaStore
- MySQL(四)字段及常用函数
- Php错误邮件提示linux,linux下phpmailer发送邮件出现SMTP ERROR: Failed to connect to server: (0)错误...
- 执行带返回参数的存储过程
- PHP实现一个轻量级容器
- 服务器软件是否支持双机热备,服务器双机热备建议方案.doc
- 接待员如何向客人upsell_酒店前厅部概述-.ppt
- 【机器学习基础】IV和WOE值
- KeyTool 和 OpenSSL 相互转换 [转]
- 如何恢复计算机我的电脑工具栏,我的电脑工具栏不见了,怎样恢復
- html p首字母缩进,html里p标签里面如何让每一行首行缩进两格???
- 3分钟快速阅读-《Effective Java》(三)
- 全球最好听的50首英文歌
- 究竟什么是前端脚手架?
热门文章
- SQL Server代理(4/12):配置数据库邮件
- 应用上下文webApplicationContext
- 结构化查询语言(Structured Query Language)
- 100层楼2个鸡蛋,如何得知鸡蛋能承受几层的撞击
- Hadoop HA 双namenode搭建
- 通信模式与网络协议之间的对应关系
- Unable to lock JVM Memory: error=12--elasticsearch
- flink中datastream和dataset各自print()的异同
- intellij连接真实的flink集群
- stanford-chinese-corenlp-yyyy-MM-dd-models.jar not exists解决