常用方法:

  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. 如何清理误提交到git的历史大文件?

    前言 哈喽!好久不见~ 最近在思考转型的事情,好久没有更新文章了 不过看到我之前开发的视频剪辑工具 Clipify 收获了不少 star ,让我想起之前画的饼似乎才实现了一点点,所以利用了周末的空闲时 ...

  2. LLM主要架构

    LLM本身基于Transformer架构 自2017年,Attention is all you need诞生起,原始的Transformer模型不同领域的模型提供了灵感和启发 基于原始的Transf ...

  3. 实现C++智能指针

    在对象切片一文中,提到可使用充当智能指针的类shape_wrapper,可以简化资源的管理,从根本上消除资源(包括内存)泄漏的可能性,本节来看下如何将shape_wrapper改造成一个完整的智能指针 ...

  4. ASP.NET Core MiniAPI中 EndPoint相关

    1.状态码返回之演化之路 1.1最基本的就是用Results或者TypedResults返回带有状态码的响应(可选Json响应体) app.MapGet("/fruit/{id}" ...

  5. Python标准库学习之logging

    前言 在python程序中,出于调试监测或者追踪(track)的目的,一般会在关键的部位加print语句来输出监测的变量值,但对于复杂的程序来讲,这样的调试手段就远远不够了,这也是logging库存在 ...

  6. 通过node.js安装yarn

    如果你已经装好了node,那么 1.添加repo curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /e ...

  7. 【FAQ】HarmonyOS SDK 闭源开放能力 —Account Kit(4)

    1.问题描述: LoginWithHuaweiIDButton不支持深色模式下定制文字和loading样式? 解决方案: LoginWithHuaweiIDButtonParams 中的有个suppo ...

  8. deepseek-r1的1.5b、7b、8b、14b、32b、70b和671b有啥区别?

    DeepSeek-R1系列提供了多种参数规模的模型(1.5B.7B.8B.14B.32B.70B 和 671B),它们在模型架构.性能表现.资源需求和适用场景上有显著差异.以下是对这些版本的核心区别总 ...

  9. Gitee、Github上star星星数获取到一个图片里,用于MD文档

    记录一下 Gitee 用这个链接当图片地址即可 https://gitee.com/用户名/仓库名/badge/star.svg?theme=white https://gitee.com/用户名/仓 ...

  10. mysql字符集插入中文报错

    org.apache.ibatis.exceptions.PersistenceException: ### Error updating database. Cause: java.sql.SQLE ...