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>
"""
【图数据库与知识图谱入门】2.2 图数据库 vs. 关系型数据库 vs. NoSQL数据库 本文对比了关系型数据库、NoSQL数据库和图数据库的核心差异与应用场景。关系型数据库以二维表结构为核心,适合结构化数据的事务处理(如MySQL),但多表关联查询性能随层级增加而下降。NoSQL数据库(如MongoDB)具有灵活schema,适合海量非结构化数据存储,但关联查询能力较弱。图数据库专注于节点-边关系建模,擅长处理复杂关联分析(如社交网络)。通过学生-课程案例展示了MySQL的多表JOIN操作和MongoDB的两种关联实现方式(内嵌文档和文档引用),揭示了不同数据库在数据关联处理上的本质区别。 阅读详情

相关推荐

告别电压瓶颈:手把手教你用SVPWM过调制算法提升电机驱动性能(附Simulink仿真)

本文详细介绍了如何利用SVPWM过调制算法提升电机驱动性能,解决电动汽车高速运行时的电压瓶颈问题。通过过调制I区和II区的算法实现细节,包括相角补偿与跳变控制,结合Simulink仿真演示,帮助工程师和研究者平衡电压增益与谐波失真,提升系统效率与动态响应。

weixin_30315723的博客 392

(二)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万+

LobeHub开源AI应用平台:从部署到定制的全栈实践指南

在现代AI应用开发领域,大语言模型(LLM)的集成与部署是核心技术挑战之一。其原理在于通过API或本地化部署,将预训练模型的强大能力封装为可调用的服务。这项技术的核心价值在于极大地降低了AI应用的开发门槛,使开发者能够快速构建智能对话、内容生成等场景的应用。随着模型即服务(MaaS)模式的普及,一个关键痛点是如何高效地管理多模型、设计友好的用户界面并实现功能扩展。这正是开源项目LobeHub所聚焦的领域,它通过提供可插拔的架构和配置驱动的低代码理念,解决了AI能力落地的“最后一公里”问题。本文将结合Dock

weixin_27210125的博客 755

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

python xml 生成 解析 Elementtree

wphkadn的博客 929

时空数据建模的跨节点联邦图神经网络:KDD21 Cross-Node Federated Graph Neural Network for Spatio-Temporal Data Modeling

前言 联邦学习(FL)虽然已经被广泛研究,但是对复杂的时空依赖关系进行建模以提高预测能力仍然是一个开放的问题。此外目前最优的时空预测模型假定对数据的访问不受限制,忽略了对数据共享的限制。基于此,本文提了一个基于图联邦学习的时空数据模型 Cross-Node Federated Graph Neural Network (CNFGNN),该模型在跨节点联邦学习的约束下,使用基于图神经网络(GNN)的架构对底层图结构进行编码,属于结构化联邦的一种,每个本地模型利用私有数据进行学习,并保持分散性。CNFGNN

qq_56027260的博客 1810

详细介绍pytorch重要的API

Tensor 是 PyTorch 中最基本的数据结构,提供了多种创建和操作张量的函数。Autograd 提供了自动求导功能,可以跟踪 Tensor 上的操作并计算梯度。损失函数用于衡量模型预测值与真实值之间的差异,提供了多种损失函数。是构建神经网络的基础类,提供了定义网络层和前向传播的方法。提供了 GPU 计算的支持,包括设备管理、内存管理等。提供了一些常用的函数式操作,如激活函数、损失函数等。提供了常用的数据集、模型架构和图像转换工具。提供了数据加载和预处理的工具,包括。

hello! 1223

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

科研党必备:5分钟搞定Arxiv论文批量导入NoteExpress(附PDF自动下载技巧)

本文为科研人员提供了一套高效的自动化工作流,实现从Arxiv批量检索论文、自动下载PDF到无缝导入NoteExpress的全过程。通过Python脚本和NASA ADS等工具,可大幅提升文献管理效率,特别适合需要追踪前沿动态的研究生和科研团队。

orange的博客 398

python --处理xml(ElementTree模块)

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

weixin_44634704的博客 1381

保姆级教程:从零到飞,用QGC地面站搞定PX4无人机全流程配置(含避坑指南)

本文提供了一份详细的QGC地面站使用教程,指导用户从零开始配置PX4无人机,涵盖固件烧录、传感器校准、遥控器设置及航点规划等关键步骤,并包含实用的避坑指南,帮助新手顺利完成首飞。

weixin_30329623的博客 221

Python爬虫零基础入门【第九章:实战项目教学·第17节】内容指纹去重:URL 变体/重复正文的识别!

我长期专注 Python 爬虫工程化实战,主理专栏 👉 《Python爬虫实战》:从采集策略到反爬对抗,从数据清洗到分布式调度,持续输出可复用的方法论与可落地案例。内容主打一个“能跑、能用、能扩展”,让数据价值真正做到——抓得到、洗得净、用得上。

喵手的博客 824

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

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

zsqianqiu的博客 872

CLRNet车道线检测模型在Orin Nano Super开发板上的全栈部署与优化实践

本文详细介绍了将CLRNet车道线检测模型部署到NVIDIA Orin Nano Super开发板的全过程。内容包括:1) Orin开发板硬件规格分析;2) JetPack SDK环境配置与Python虚拟环境搭建;3) CLRNet模型架构解析与PyTorch实现;4) 模型转换与TensorRT加速优化方法。通过系统性的环境配置、模型转换和性能优化,为边缘计算场景下的车道线检测应用提供了完整的解决方案,实现了在Orin平台上的高效部署。

huanghm88的专栏 226

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

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

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

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

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

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

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的博客 3629

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、付费专栏及课程。

余额充值