常用方法:

  1. Element.findall(): 只找到带有标签的元素,该标签是当前元素的直接子元素。
  2. Element.find() :找到第一个带有特定标签的子元素。
  3. Element.text:访问标签的内容
  4. Element.get():访问标签的属性值
  5. ElementTree.write() :创建xml文件或向xml中写入数据。
  6. Element.set():添加和修改标签的属性和属性值。
  7. 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文件的更多相关文章

  1. python xml.etree.ElementTree解析xml文件获取节点

    <?xml version = "1.0" encoding = "utf-8"?> <root> <body name=&quo ...

  2. ElementTree 解析xml(minidom解析xml大文件时,MemoryError)

    在使用minido解析xml文件时,因为文件过大,结果报错MemoryError.查询后得知是因为minidom在解析时是将所有文件放到内存里的,很占用内存,所以要考虑换一种方法来处理xml文件.   ...

  3. python解析xml文件时使用ElementTree和cElementTree的不同点;iter

    在python中,解析xml文件时,会选用ElementTree或者cElementTree,那么两者有什么不同呢? 1.cElementTree速度上要比ElementTree快,比较cElemen ...

  4. python 解析xml 文件: Element Tree 方式

    环境 python:3.4.4 准备xml文件 首先新建一个xml文件,countries.xml.内容是在python官网上看到的. <?xml version="1.0" ...

  5. python XML文件解析:用xml.dom.minidom来解析xml文件

    python解析XML常见的有三种方法: 一是xml.dom.*模块,是W3C DOM API的实现,若需要处理DOM API则该模块很合适, 二是xml.sax.*模块,它是SAX API的实现,这 ...

  6. 【TensorFlow】Python解析xml文件

    最近在项目中使用TensorFlow训练目标检测模型,在制作自己的数据集时使用了labelimg软件对图片进行标注,产生了VOC格式的数据,但标注生成的xml文件标签值难免会产生个别错误造成程序无法跑 ...

  7. python 解析 XML文件

    如下使用xml.etree.ElementTree模块来解析XML文件.ElementTree模块中提供了两个类用来完成这个目的: ElementTree表示整个XML文件(一个树形结构) Eleme ...

  8. Python中xml.etree.ElementTree读写xml文件实例

    import osimport xml.etree.ElementTree as ET'''Python 标准库中,提供了6种可以用于处理XML的包,本文举实例说明第6种1.xml.dom2.xml. ...

  9. Android 解析XML文件和生成XML文件

    解析XML文件 public static void initXML(Context context) { //can't create in /data/media/0 because permis ...

  10. JAVA使用SAX解析XML文件

    在我的另一篇文章(http://www.cnblogs.com/anivia/p/5849712.html)中,通过一个例子介绍了使用DOM来解析XML文件,那么本篇文章通过相同的XML文件介绍如何使 ...

随机推荐

  1. ASP.NET Core相关下载资源汇总

    1.Net.6的Host Bundle的下载地址(IIS)服务配套组件: https://dotnet.microsoft.com/zh-cn/download/dotnet/6.0 2.docker ...

  2. C#中的弱引用

    弱引用保持的是一个GC"不可见"的引用,是指弱引用不会增加对象的引用计数,也不会阻止垃圾回收器对该对象进行回收.因此,弱引用的目标对象可以被垃圾回收器回收,而弱引用本身不会对垃圾回 ...

  3. 堆排序算法Java实现

    摘要 介绍堆排序的基本概念及其实现. 前言   排序大的分类可以分为两种:内排序和外排序.在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序.这里讲的排序是内排序 ...

  4. Spring 注解之 @MapperScan 和 @Mapper

    @Mapper注解 为了让别的类能够引用UserMapper,需要在UserMapper类上添加@Mapper注解: @Mapper public interface UserMapper { pub ...

  5. Krita的语言选项里没有中文

    sudo apt install krita-l10n 即可,

  6. 布局控件:Grid和StackPanel

    布局控件:Grid和StackPanel 本文同时为b站WPF课程的笔记,相关示例代码 一个窗口顶上的部分叫做非客户区,下面的部分叫做客户区域.非客户区域主要就是一个Title和三个窗口样式按钮.我们 ...

  7. 【洛谷有题】NOI 笔试题库(非初赛)订正

    传送门 第一次做,那个成绩可是一个惨不忍睹-- 我还是想说--我虽然要用Linux,但是不一定要用到指令啊(吧)--编译啥的我可以用Vim|guide啊-- Linux 中为文件改名使用的命令是: m ...

  8. WPF 使用CompositionTarget.Rendering实现平滑流畅滚动的ScrollViewer,支持滚轮、触控板、触摸屏和笔

    之前的文章中用WPF自带的动画库实现了一个简陋的平滑滚动ScrollViewer,它在只使用鼠标滚轮的情况下表现良好,但仍然有明显的设计缺陷和不足: 没有实现真正的动画衔接,只是单纯结束掉上一个动画, ...

  9. k8s events说明

    简单说明 k8s的Event事件是一种资源对象,用于展示集群内发生的情况,k8s系统中的各个组件会将运行时发生的各种事件上报给apiserver . 可以通过kubectl get event 或 k ...

  10. 数栈大数据组件:Hive优化之配置参数的优化

    Hive是大数据领域常用的组件之一,主要用于大数据离线数仓的运算,关于Hive的性能调优在日常工作和面试中是经常涉及的一个点,因此掌握一些Hive调优是必不可少的一项技能.影响Hive效率的主要因素有 ...