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的基本应用总结相关推荐

  1. python读取xml文件报错ValueError: multi-byte encodings are not supported

    1.在使用python对xml文件进行读取时,提示ValueError: multi-byte encodings are not supported 很多贴子上说把xml的编码格式改为,就可以正常执 ...

  2. python之XML文件解析

    python对XML的解析 常见的XML编程接口有DOM和SAX,这两种接口处理XML文件的方式不同,当然使用场合也不同. python有三种方法解析XML,分别是SAX,DOM,以及ElementT ...

  3. python 解析xml

    在工作中很多时候都要用到xml,使用这个时候难免会设计到解析他,然后就研究了一下python解析xml问题,看了很多东西,python有很多解析xml的包,但是也折腾我好一段时间,最后选择了这个方法. ...

  4. 用python将xml文件转换为txt文件_python代码xml转txt实例

    为了训练深度学习模型,经常要整理大量的标注数据,需统一不同格式的标注数据,一般情况下习惯读取TXT格式的数据.但实际中经常遇到XML格式的标注数据,在此举例:1.读取XML标注数据:2.写入TXT文件 ...

  5. python读xml文件生成头文件_Python根据指定文件生成XML的方法

    因项目需要根据指定格式的文件生成XML标注文件,可以方便使用LabelImg打开进行编辑和查看.其原始文件默认使用逗号进行分隔,如下所示: 第1个值:原始图片中切图小文件,以AIpng_x,其中x代表 ...

  6. xml python gb2312_使用Python处理XML格式数据的方法介绍

    本文实例讲述了Python处理XML格式数据的方法.分享给大家供大家参考,具体如下: 这里的操作是基于Python3平台. 在使用Python处理XML的问题上,首先遇到的是编码问题. Python并 ...

  7. python生成xml文件工具_Python根据指定文件生成XML的方法

    因项目需要根据指定格式的文件生成XML标注文件,可以方便使用LabelImg打开进行编辑和查看.其原始文件默认使用逗号进行分隔,如下所示: 第1个值:原始图片中切图小文件,以AIpng_x,其中x代表 ...

  8. Python和xml简介

    python提供越来越多的技术来支持xml,本文旨在面向初学利用Python处理xml的读者,以教程的形式介绍一些基本的xml出来概念.前提是读者必须知道一些xml常用术语. 先决条件 本文所有的例子 ...

  9. 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( ...

  10. python 打印xml文档树_Python构建XML树结构的方法示例

    本文实例讲述了Python构建XML树结构的方法.分享给大家供大家参考,具体如下: 1.构建XML元素 #encoding=utf-8 from xml.etree import ElementTre ...

最新文章

  1. 客快物流大数据项目(十七):自定义镜像mycentos
  2. C++ 笔记(11)— 循环(while/for/do while/嵌套循环、break/continue/goto 循环控制语句)
  3. 【leetcode】Linked List Cycle I II
  4. 设置dialog显示,自定义时间到后dialog消失
  5. [JSOI2008]火星人
  6. 活跃用户数怎么计算_不懂LTV,怎么做用户增长?详解用户生命周期价值计算方法...
  7. Vitamio中文API文档(1)—— MediaStore
  8. MySQL(四)字段及常用函数
  9. Php错误邮件提示linux,linux下phpmailer发送邮件出现SMTP ERROR: Failed to connect to server: (0)错误...
  10. 执行带返回参数的存储过程
  11. PHP实现一个轻量级容器
  12. 服务器软件是否支持双机热备,服务器双机热备建议方案.doc
  13. 接待员如何向客人upsell_酒店前厅部概述-.ppt
  14. 【机器学习基础】IV和WOE值
  15. KeyTool 和 OpenSSL 相互转换 [转]
  16. 如何恢复计算机我的电脑工具栏,我的电脑工具栏不见了,怎样恢復
  17. html p首字母缩进,html里p标签里面如何让每一行首行缩进两格???
  18. 3分钟快速阅读-《Effective Java》(三)
  19. 全球最好听的50首英文歌
  20. 究竟什么是前端脚手架?

热门文章

  1. SQL Server代理(4/12):配置数据库邮件
  2. 应用上下文webApplicationContext
  3. 结构化查询语言(Structured Query Language)
  4. 100层楼2个鸡蛋,如何得知鸡蛋能承受几层的撞击
  5. Hadoop HA 双namenode搭建
  6. 通信模式与网络协议之间的对应关系
  7. Unable to lock JVM Memory: error=12--elasticsearch
  8. flink中datastream和dataset各自print()的异同
  9. intellij连接真实的flink集群
  10. stanford-chinese-corenlp-yyyy-MM-dd-models.jar not exists解决