ElementTree解析XML文件
常用方法:
- Element.findall(): 只找到带有标签的元素,该标签是当前元素的直接子元素。
- Element.find() :找到第一个带有特定标签的子元素。
- Element.text:访问标签的内容
- Element.get():访问标签的属性值
- ElementTree.write() :创建xml文件或向xml中写入数据。
- Element.set():添加和修改标签的属性和属性值。
- Element.append():添加孩子节点
8:SubElement():用于创建新的子元素
查找XML中指定元素的属性
查找country节点的属性:attrib:元素属性,text:元素的值
for country in root.findall("country"):
... print(country.attrib)
在country节点中查找指定名称节点的值
for country in root.findall("country"):
... rank=country.find("rank").text =========》find:只匹配找到结果的第一个
... name=country.get("name")
... print(name,rank)
查找country节点下rank属性的内容(tag:节点名称,text:标签内容)
for elem in tree.iterfind("country/rank"):
... print(elem.tag,elem.text)
...
('rank', '1')
('rank', '4')
('rank', '68')
查找指定节点子节点的tag和属性
for elem in tree.iterfind("branch/sub-branch"):
... print(elem.tag,elem.attrib)
...
('sub-branch', {'name': 'subrelease01'})
添加子节点的属性
给rank元素添加一个update属性,它的值为yes
for rank in root.iter("rank"):
... rank.set("updated","yes")
...
tree.write("output.xml") =============>将添加的结果保存至XML
为root的第一个子节点添加foo=bar的属性
root[0].set("foo","bar")
tree.write("output.xml")
删除操作
del root[2] ====================》删除第3个子节点(节点下标从0开始)
tree.write("output.xml")
修改XML属性的值
构建XML文件
一是你先读取一个XML文档,进行修改,然后再将修改写入文档,二是从头创建一个新XML文档
ElementTree解析XML文件的更多相关文章
- python xml.etree.ElementTree解析xml文件获取节点
<?xml version = "1.0" encoding = "utf-8"?> <root> <body name=&quo ...
- ElementTree 解析xml(minidom解析xml大文件时,MemoryError)
在使用minido解析xml文件时,因为文件过大,结果报错MemoryError.查询后得知是因为minidom在解析时是将所有文件放到内存里的,很占用内存,所以要考虑换一种方法来处理xml文件. ...
- python解析xml文件时使用ElementTree和cElementTree的不同点;iter
在python中,解析xml文件时,会选用ElementTree或者cElementTree,那么两者有什么不同呢? 1.cElementTree速度上要比ElementTree快,比较cElemen ...
- python 解析xml 文件: Element Tree 方式
环境 python:3.4.4 准备xml文件 首先新建一个xml文件,countries.xml.内容是在python官网上看到的. <?xml version="1.0" ...
- python XML文件解析:用xml.dom.minidom来解析xml文件
python解析XML常见的有三种方法: 一是xml.dom.*模块,是W3C DOM API的实现,若需要处理DOM API则该模块很合适, 二是xml.sax.*模块,它是SAX API的实现,这 ...
- 【TensorFlow】Python解析xml文件
最近在项目中使用TensorFlow训练目标检测模型,在制作自己的数据集时使用了labelimg软件对图片进行标注,产生了VOC格式的数据,但标注生成的xml文件标签值难免会产生个别错误造成程序无法跑 ...
- python 解析 XML文件
如下使用xml.etree.ElementTree模块来解析XML文件.ElementTree模块中提供了两个类用来完成这个目的: ElementTree表示整个XML文件(一个树形结构) Eleme ...
- Python中xml.etree.ElementTree读写xml文件实例
import osimport xml.etree.ElementTree as ET'''Python 标准库中,提供了6种可以用于处理XML的包,本文举实例说明第6种1.xml.dom2.xml. ...
- Android 解析XML文件和生成XML文件
解析XML文件 public static void initXML(Context context) { //can't create in /data/media/0 because permis ...
- JAVA使用SAX解析XML文件
在我的另一篇文章(http://www.cnblogs.com/anivia/p/5849712.html)中,通过一个例子介绍了使用DOM来解析XML文件,那么本篇文章通过相同的XML文件介绍如何使 ...
随机推荐
- ASP.NET Core相关下载资源汇总
1.Net.6的Host Bundle的下载地址(IIS)服务配套组件: https://dotnet.microsoft.com/zh-cn/download/dotnet/6.0 2.docker ...
- C#中的弱引用
弱引用保持的是一个GC"不可见"的引用,是指弱引用不会增加对象的引用计数,也不会阻止垃圾回收器对该对象进行回收.因此,弱引用的目标对象可以被垃圾回收器回收,而弱引用本身不会对垃圾回 ...
- 堆排序算法Java实现
摘要 介绍堆排序的基本概念及其实现. 前言 排序大的分类可以分为两种:内排序和外排序.在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序.这里讲的排序是内排序 ...
- Spring 注解之 @MapperScan 和 @Mapper
@Mapper注解 为了让别的类能够引用UserMapper,需要在UserMapper类上添加@Mapper注解: @Mapper public interface UserMapper { pub ...
- Krita的语言选项里没有中文
sudo apt install krita-l10n 即可,
- 布局控件:Grid和StackPanel
布局控件:Grid和StackPanel 本文同时为b站WPF课程的笔记,相关示例代码 一个窗口顶上的部分叫做非客户区,下面的部分叫做客户区域.非客户区域主要就是一个Title和三个窗口样式按钮.我们 ...
- 【洛谷有题】NOI 笔试题库(非初赛)订正
传送门 第一次做,那个成绩可是一个惨不忍睹-- 我还是想说--我虽然要用Linux,但是不一定要用到指令啊(吧)--编译啥的我可以用Vim|guide啊-- Linux 中为文件改名使用的命令是: m ...
- WPF 使用CompositionTarget.Rendering实现平滑流畅滚动的ScrollViewer,支持滚轮、触控板、触摸屏和笔
之前的文章中用WPF自带的动画库实现了一个简陋的平滑滚动ScrollViewer,它在只使用鼠标滚轮的情况下表现良好,但仍然有明显的设计缺陷和不足: 没有实现真正的动画衔接,只是单纯结束掉上一个动画, ...
- k8s events说明
简单说明 k8s的Event事件是一种资源对象,用于展示集群内发生的情况,k8s系统中的各个组件会将运行时发生的各种事件上报给apiserver . 可以通过kubectl get event 或 k ...
- 数栈大数据组件:Hive优化之配置参数的优化
Hive是大数据领域常用的组件之一,主要用于大数据离线数仓的运算,关于Hive的性能调优在日常工作和面试中是经常涉及的一个点,因此掌握一些Hive调优是必不可少的一项技能.影响Hive效率的主要因素有 ...