python xml.etree.ElementTree模块生成、解析xml

Python 处理XML文件并生成部分CAPL脚本简单总结 Python处理XML并生成CAPL脚本 阅读详情

一: XML文件格式介绍:

<tag attrib = > text </tag> tail
例:<APP_KEY channel = '优快云'> hello123456789 </APP_KEY>
- tag,即标签,用于标识该元素表示哪种数据,即APP_KEY
- attrib,即属性,用Dictionary形式保存,即{‘channel’ = ‘优快云’}
- text,文本字符串,可以用来存储一些数据,即hello123456789
- tail,尾字符串,并不是必须的,例子中没有包含。

二 :生成xml文件


 
from xml.etree import ElementTree as ET
 
def create_name_same(el):
    li = []
    for i in range(10):
        li.append(ET.SubElement(el, 'case'))
    return li
def create_name_not(el):
    ET.SubElement(el, 'name')
    ET.SubElement(el, 'yyy')
    ET.SubElement(el, 'xxx')
 
# 创建根节点
root = ET.Element('tasks')
sub1 = ET.SubElement(root, 'cases')
sub2 = ET.SubElement(root, 'name')
# 创建指定节点的相同名字的子节点
li_sub1_sub_node = create_name_same(sub1)
 
# 创建指定节点的不同名字的子节点
for sub1_sub_node in li_sub1_sub_node:
    create_name_not(sub1_sub_node)
 
# 打印输出root结构
print(ET.dump(root))
 
# 将创建好的root树写入文件
# 第一种写入文件的方法
tree = ET.ElementTree(root)
tree.write("/root/桌面/asd/aaa.xml", encoding='utf-8', xml_declaration=True)
 
# 第二种写入文件的方法 (这个方法生成的xml文件使用文本打开格式是有缩进的)
# ET模块转换root为bytes输出,
xml_string = ET.tostring(root)
from xml.dom import minidom
dom = minidom.parseString(xml_string)
with open("/root/桌面/asd/aaa.xml", 'w', encoding='utf-8') as f:
    dom.writexml(f, addindent='\t', newl='\n', encoding='utf-8')
 
 
 
 
# mindom转换dom为字符串str,查看dom的文本结构
dom.toxml()
dom.toprettyxml()  # 等于 添加了addindent='\t', newl='\n'的xml格式的字符串str形式输出
type(dom.toprettyxml()) 
 
 
 
 
 
# 生成的xml结构
"""
<?xml version="1.0" encoding="utf-8"?>
<tasks>
	<cases>
		<case>
			<name/>
			<yyy/>
			<xxx/>
		</case>
		<case>
			<name/>
			<yyy/>
			<xxx/>
		</case>
		<case>
			<name/>
			<yyy/>
			<xxx/>
		</case>
		<case>
			<name/>
			<yyy/>
			<xxx/>
		</case>
		<case>
			<name/>
			<yyy/>
			<xxx/>
		</case>
		<case>
			<name/>
			<yyy/>
			<xxx/>
		</case>
		<case>
			<name/>
			<yyy/>
			<xxx/>
		</case>
		<case>
			<name/>
			<yyy/>
			<xxx/>
		</case>
		<case>
			<name/>
			<yyy/>
			<xxx/>
		</case>
		<case>
			<name/>
			<yyy/>
			<xxx/>
		</case>
	</cases>
	<name/>
</tasks>
"""

解析xml


from xml.etree import ElementTree as ET
path = "/root/桌面/asd/aaa.xml"
 
tree = ET.parse(path)
root = tree.getroot()
# 以root节点为根节点,获取root/cases/下所有case,nel为一个列表
nel = root.findall('./cases/case')
# i为nel列表中的case节点
for i in nel:
    i.text = str(111)
 
# nel为root/cases下发现的第一个case节点
nel = root.find('./cases/case')
# i为第一个case节点下的字节点
for i in nel:
    i.text = str(222)
 
# 如果解析的xml文件带有格式, 需要替换掉"\t"、"\n"等格式符号, 再使用mindom写文件
xml_string = ET.tostring(root).replace(b'\t', b'').replace(b'\n', b'')
from xml.dom import minidom
# 重新生成 xml 字符串
dom = minidom.parseString(xml_string)
with open("/root/桌面/asd/aaa.xml", 'w', encoding='utf-8') as f:
    dom.writexml(f, addindent='\t', newl='\n', encoding='utf-8')
 
 
 
 
# 解析在生成文件结构为
"""
<?xml version="1.0" encoding="utf-8"?>
<tasks>
	<cases>
		<case>
			111
			<name>222</name>
			<yyy>222</yyy>
			<xxx>222</xxx>
		</case>
		<case>
			111
			<name/>
			<yyy/>
			<xxx/>
		</case>
		<case>
			111
			<name/>
			<yyy/>
			<xxx/>
		</case>
		<case>
			111
			<name/>
			<yyy/>
			<xxx/>
		</case>
		<case>
			111
			<name/>
			<yyy/>
			<xxx/>
		</case>
		<case>
			111
			<name/>
			<yyy/>
			<xxx/>
		</case>
		<case>
			111
			<name/>
			<yyy/>
			<xxx/>
		</case>
		<case>
			111
			<name/>
			<yyy/>
			<xxx/>
		</case>
		<case>
			111
			<name/>
			<yyy/>
			<xxx/>
		</case>
		<case>
			111
			<name/>
			<yyy/>
			<xxx/>
		</case>
	</cases>
	<name/>
</tasks>
"""
FunASR与FreeSWITCH融合实战:从零构建高精度语音质检系统 本文详细介绍了如何将FunASR与FreeSWITCH融合,构建高精度语音质检系统。通过实时语音听写技术,结合热词定制和多模型切换,实现客服中心等场景的自动化质检,显著提升识别准确率和效率。系统架构涵盖音频采集、识别处理和业务应用三层,支持负载均衡和性能优化,适用于工业级部署。 阅读详情

相关推荐

避坑指南:OpenWebUI+SearXNG联网搜索的5个常见配置错误及解决方法

本文详细解析了OpenWebUI与SearXNG整合过程中常见的5个配置错误及解决方案,包括JSON格式配置陷阱、国内搜索引擎缺失、连续搜索失效等问题。通过实战验证的优化策略,帮助开发者避免性能下降和功能异常,提升大模型与搜索引擎的协同效率。

jenkins8butler的博客 819

(二)Python创建、修改、保存XML文件——xml.etree.ElementTree模块

XML tree and elements XML是一种固有的分层数据格式,最自然的表示方法是使用树。ET有两个类为此目的—ElementTree表示整个XML文档为树,元素表示此树中的单个节点。与整个文档的交互(读取和写入文件)通常是在ElementTree级别上完成的。与单个XML元素及其子元素的交互是在元素级别上完成的。 读入xml格式的文件,并显示全部行数据: from xml.etree import ElementTree as ET file_xml = r'/Users/edz/Docu

Yale-曼陀罗 2万+

耕地质量评价软件实操指南:如何用Excel+ArcGIS一键生成土壤普查报告(附避坑技巧)

本文提供了一套融合Excel数据处理与ArcGIS空间分析的耕地质量评价实战工作流。详细讲解了从数据规范化预处理、高效数据桥接,到在ArcGIS中实现指标评分、综合指数计算与等级划分的全流程,旨在帮助土壤普查工作者大幅提升报告生成效率与准确性,并分享了关键的避坑技巧。

weixin_28455801的博客 492

python xml.etree.ElementTree之·设置并生成xml·解析xml

python xml 生成 解析 Elementtree

wphkadn的博客 929

别再被无限debugger卡住了!Chrome DevTools实战绕过技巧(含Hook与文件替换)

本文详细介绍了如何通过Chrome DevTools绕过无限debugger封锁的实战技巧,包括Hook技术与文件替换方法。针对常见的定时器轰炸、循环陷阱和动态注入等反调试手段,提供了高效的解决方案,帮助开发者快速突破调试障碍,提升爬虫和逆向工程效率。

weixin_30326515的博客 242

Ubuntu22.04下ROS2与PX4仿真环境搭建全流程解析

本文详细解析了在Ubuntu22.04系统下搭建ROS2与PX4仿真环境的全流程,包括系统准备、ROS2 Humble安装、PX4飞控环境部署、ROS2与PX4通信桥梁搭建等关键步骤。针对常见问题提供了解决方案,并分享了性能优化和开发调试技巧,帮助开发者快速构建无人机仿真开发环境。

weixin_29248653的博客 607

python美化XML

import xml.etree.ElementTree as ET def prettyXml(element, indent, newline, level = 0): # elemnt为传进来的Elment类,参数indent用于缩进,newline用于换行 if element: # 判断element是否有子元素 if element.text == None or element.text.isspace(): # 如果element的text没有内容

a200822146085的博客 765

AUTOSAR进阶图解==>AUTOSAR_SWS_ADCDriver

本文深入解析了AUTOSAR ADC Driver的架构设计和技术实现。主要内容包括:1)ADC Driver在AUTOSAR分层架构中的定位及核心功能;2)详细的模块架构设计,涵盖初始化管理、组转换管理、优先级处理等核心子组件;3)全面的配置模型说明,包括主配置类、通用配置、通道配置等关键数据结构;4)状态机机制和操作序列分析。通过分层设计和标准化接口,ADC Driver实现了硬件抽象和软件解耦,提供了良好的可移植性和可维护性。

一名留德华的,康德的信徒的,专注于汽车电子领域的博客 786

python --处理xml(ElementTree模块)

⼀是xml.dom. * 模块,它是W3CDOMAPI的实现,若需要处理DOMAPI则该模块很适合;⼆是xml.sax. * 模块,它是SAXAPI的实现,这个模块牺牲了便捷性来换取速度和内存占⽤,SAX是⼀个基于事件的API,这就意味着它可以“在空中”处理庞⼤数量的的⽂档,不⽤完全加载进内存;...

weixin_44634704的博客 1381

基于STM32L4XX、HAL库的DP83822 以太网收发器(PHY)驱动程序设计

一、简介:DP83822是德州仪器(TI)推出的一款低功耗、高性能10/100Mbps以太网物理层收发器(PHY)。它具有以下主要特性:支持10BASE-T和100BASE-TX以太网标准低功耗设计,适合嵌入式应用MII/RMII接口,方便与微控制器连接内置自检和诊断功能支持自动协商和手动配置工业级温度范围(-40°C至+85°C)

zhusl6688的博客 528

嵌入式工程师成长之路(2)——电路设计

为什么你的电源模块总是发热炸机?DC/DC和LDO选型的“潜规则”你踩坑了吗? LM2596降压芯片用错电容导致输出振荡?LED恒流驱动设计让灯珠寿命缩水50%?24V转12V方案成本超预算被老板狂喷?——这些血泪教训,谁能懂得!

云轩阁 13万+

xml.etree.ElementTree生成xml,两种不同的结尾方式

第一种长这样: <标签>属性</标签> <test>fisrt grandson</test> 第二种长这样:<标签 属性1 属性2/> <test Name="reserved" age="31" Description="保留"/> 两种不同表现形式,就是通过ElementTree中write的最后一个参数决定的 short_empty_elements=FALSE时,开始/结束标记成对出现,就是第一种格式 ..

zsqianqiu的博客 872

游戏大厂射击游戏无缝大世界游戏DS服务器架构设计方案详解

摘要: 本文深入解析游戏大厂无缝大世界射击游戏的分布式服务器(DS)架构设计方案。以《和平精英》《量子特攻》为例,阐述如何通过动态分区、兴趣管理、弹性扩缩等核心技术应对高并发、低延迟、无缝切换等挑战。架构分为世界协调层、分区计算层、物理判定层等模块,结合微服务化、快照同步和Kubernetes调度,实现玩家跨区无感知迁移与一致判定。重点优化动态负载均衡、状态同步算法及容灾备份,依托分布式数据库与多云部署保障高可用性,为同类游戏提供可扩展的技术范本。(149字) 关键词: 无缝大世界、分布式服务器、动态分区、

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 563

python xml etree_python xml.etree.ElementTree模块生成、解析xml

'''在Python标准库中,ElementTree有两种实现方式:一种是纯Python的实现xml.etree.ElementTree,另一种是速度更快一点的xml.etree.cElementTree。如果不确定环境中是否有cElementTree,可以使用如下的方式导入但从Python 3.3开始,会默认使用cElementTree来加快速度,但是之前的版本最好使用如上的代码,以提高代码的兼...

weixin_39771260的博客 234

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

python xml 解析_使用python3.4解析xml文件(sax、dom、etree)详解

调用sax模块处理xml文件。#重载了三个方法#处理xml,主要就是写自己的事件处理类from xml.sax import *class DengHandler(ContentHandler):def startDocument(self):print("----开始解析xml文档----")def endDocument(self):print("----xml文档解析完毕----")def ...

weixin_39949386的博客 265

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

python etree库_Python 标准库之 xml.etree.ElementTree

一、导入ET在Python标准库中,ElementTree有两种实现方式:一种是纯Python的实现xml.etree.ElementTree,另一种是速度更快一点的xml.etree.cElementTree。如果不确定环境中是否有cElementTree,可以使用如下的方式导入:try:importxml.etree.cElementTree as ETexceptImportError:im...

weixin_35687240的博客 5021

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

python用elementtree处理XML文件

python用elementtree处理XML文件 2010年07月04日 18:57 ---------------------------------------------------------------貌似很简单,直接试用一下就知道了。。。 from

我想 我做 6290

【Python快速上手(二十五)】-Python3 XML解析

在上面的示例中,我们首先定义了一个XML字符串xml_string,然后使用ET.fromstring()方法解析XML字符串,得到XML根元素root。XML是一种灵活的数据格式,在许多应用中被广泛使用,掌握如何处理XML数据将有助于您更好地处理和交换数据。在上面的示例中,我们首先创建了一个XML根元素root,然后添加了两个子元素name和age,并设置它们的文本内容。要生成XML数据,可以使用ElementTree类的方法来创建XML元素,并将其序列化为字符串。

qq_38641481的博客 860

python解析xml生成代码_python 解析与生成xml

xml.etree.ElementTree模块为xml文件的提取和建立提供了简单有效的API。下文中使用ET来代表xml.etree.ElementTree模块。XML是一种内在的分层的数据形式,展示这种数据最自然的方式就是树形结构。ET有两种类来实现这个目标——Elementree将整个XML文件构造成一棵树,Element代表书树一个节点。与整个文件的交互(从文件读或者写)一般在Element...

weixin_36328260的博客 384

Python3解析XML文件(xml.etree.ElementTree)——以简单网络爬虫为例

在python3中可以使用 xml.etree.ElementTree 模块操作XML文档。以下案例为网易汽车的销量数据,地址为: http://db.auto.sohu.com/cxdata/xml/sales/model/model1001sales.xml 从网页内容中,可以看到是XML文件。以下为其解析程序,我想要的数据是date(销量的日期)、salesNum(销量)两个数据: #...

qy20115549的博客 1万+

etree解析xml_xml.etree.ElementTree功能介绍

本文约2200字,建议阅读时间11~14分钟关键字:python,xml,可扩展标记语言,xml.etree.ElementTree假设当前工作目录下存在data.xml文件,其内容如下:1、XML文件的解析(1)读取xml文件import xml.etree.ElementTree as ETtree=ET.parse('data.xml')#返回ElementTree对象root=...

weixin_39676930的博客 1323

Python3标准库:xml.etree.ElementTree XML操纵API

1.xml.etree.ElementTree XML操纵API ElementTree库提供了一些工具,可以使用基于事件和基于文档的API来解析XML,可以用XPath表达式搜索已解析的文档,还可以创建新文档或修改现有文档。 1.1 解析XML文档 已解析的XML文档在内存中由ElementTree和Element对象表示,这些对象基于XML文档中节点嵌套的方式按树结构互相连接。 用parse()解析一个完整的文档时,会返回一个ElementTree实例。这个树了解输入文档中的所有数据,另外可...

marcushbs的博客 664

Python 解析 XML 文件生成 HTML

XML文件result.xml,内容如下: <ccm> <metric> <complexity>1</complexity> <unit>multiply</unit> <classification>A</classification>...

weixin_33736048的博客 357

XML生成与解析(DOM、ElementTree)

python网络编程学习笔记(8):XML生成与解析(DOM、ElementTree) 转载请注明:@小五义http://www.cnblogs.com/xiaowuyi xml.dom篇     DOM是Document Object Model的简称,XML 文档的高级树型表示。该模型并非只针对 Python,而是一种普通XML 模型。Python 的 DOM 包是基于

Together_CZ的博客 3630

XML解析(DOM、ElementTree)及转换为JSON

xml.dom篇 DOM是Document Object Model的简称,XML 文档的高级树型表示。该模型并非只针对 Python,而是一种普通XML 模型。Python 的 DOM 包是基于 SAX 构建的,并且包括在 Python 2.0 的标准 XML 支持里。 一、xml.dom的简单介绍 1、主要方法: minidom.parse(filename):加载读取XML文件 d...

全栈测试笔记 308

Python学习笔记(8):The ElementTree XML API——操作XML文件

常用函数 xml.etree.ElementTree.Comment(text=None) 该方法生成一个注释对象,注释内容是text。 xml.etree.ElementTree.dump(elem) 该方法将一个对象打印到标准输出。这个函数只用来调试(一般不把结果打印到标准输出)。 xml.etree.ElementTree.fromstring(text) 解析字符串

K_Ohaha的博客 897
上一篇: 【中标麒麟】中标麒麟安装中文输入法
下一篇: python单元测试unittest
YPFeime
博客等级 码龄9年 19粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值