首页 > 编程语言 >xml.etree.ElementTree 文档中文翻译; SVG矢量图;Python标准库

xml.etree.ElementTree 文档中文翻译; SVG矢量图;Python标准库

时间:2024-07-25 20:41:07浏览次数:11  
标签:xml XML 中文翻译 矢量图 元素 key ET ElementTree

更新中..

简介

xml.etree.ElementTree 实现了一个简洁有效的用于解析和新建XML数据的API。其也被简称为ET

弃用: xml.etree.cElementTree自Python==3.3已被弃用
警告:使用时需注意恶意构建的数据,请防范XML漏洞

概念

XML 是一种继承性的分层数据格式,常用树来表示。
ET有两个类,ElementTree 和 Element.
通常将ElementTree对应整个XML,而Element则对应单个XML元素。

注: 本文一般将'element'翻译为“元素”。

解析XML

假设如下虚构的数据被储存在目录 country_data.xml下。

<?xml version="1.0"?>
<data>
    <country name="列支敦士登">
        <rank>1</rank>
        <year>2008</year>
        <gdppc>141100</gdppc>
        <neighbor name="奥地利" direction="E"/>
        <neighbor name="瑞士" direction="W"/>
    </country>
    <country name="新加坡">
        <rank>4</rank>
        <year>2011</year>
        <gdppc>59900</gdppc>
        <neighbor name="马来西亚" direction="N"/>
    </country>
    <country name="巴拿马">
        <rank>68</rank>
        <year>2011</year>
        <gdppc>13600</gdppc>
        <neighbor name="哥斯达黎加" direction="W"/>
        <neighbor name="哥伦比亚" direction="E"/>
    </country>
</data>

将该XML使用ET解析的方法有两种,从文件直接导入和从字符串解析。

a. 从文件导入

import xml.etree.ElementTree as ET
tree = ET.parse('country_data.xml')
root = tree.getroot()

tree和root的类型
可以看到,tree与root分别是ElementTree和Element

b. 从字符串导入

假设该虚拟数据已被导入计算机内存,存储在名为data_str的字符串变量中,则

import xml.etree.ElementTree as ET
root = ET.fromstring(data_str)

可以看到,由字符串解析得到的直接就是Element对象

Element类

tag

字符串,表示该Element的类型

text 与 tail

text

可以理解为该元素起始标签之后跟随的非标签内容

tail

可以理解为该元素结束标签之后跟随的非标签内容
例如

<a><b>1<c>2<d/>3</c></b>4</a>
元素 i <i> 后续内容 即text </i> 后续内容 即tail
a
b "1" "4"
c "2"
d "3"

attrib

字典,包含了该元素的属性

attribStringExample = ' <neighbor name="奥地利" direction="E"/> '
ele1 = ET.fromstring(attribStringExample)
print(ele1.attrib)

输出{'name': '奥地利', 'direction': 'E'}

get(key, default=None)

从attrib字典中根据key获取值,若未找到则返回default指定的值

v = ele1.get(key, default=None)
# 相当于:
v = ele1.attrib[key] if key in ele1.attrib.keys() else default

items() 与 keys()

从atrrib字典获取键值对、键

set(key, value)

设置元素属性
相当于

ele1.attrib[key]=value

find(match, namespaces=None), findall(match, namespaces=None), findtext(match, default=None, namespaces=None)

分别为

  1. 查找以当前元素为父元素(父节点)的所有子元素(子节点)中与match匹配的第一个子元素,match可以是tag名称或者path
  2. 查找出所有匹配的结果,其他同上
  3. 返回第一个匹配的子元素的text,其他同find()

标签:xml,XML,中文翻译,矢量图,元素,key,ET,ElementTree
From: https://www.cnblogs.com/mactor/p/18324097

相关文章

  • Qt - XML和JSON
    1.XML1.1简介可扩展标记语言,标准通用标记语言(ExtensibleMarkupLanguage)的子集,简称XML,是一种定义电子文档结构和描述其内容的国际标准语言,被设计用来传输和存储数据。可扩展标记语言与Access],Oracle]和SQLServer等数据库不同,数据库提供了更强有力的数据存储和分析能力,例......
  • 需要帮助来提取此 XML 节点 - Python 中的 Excel 连接字符串
    我有一个Python程序,打开Excel(XLSX)文件,并尝试查找<connection>节点。这是connections.xml文件中的完整XML。<?xmlversion="1.0"encoding="UTF-8"standalone="yes"?><connectionsxmlns="http://schemas.op......
  • Python XML 解析:字符串中的“<”被阻塞
    我有一个使用ET.XMLParser来解析CppCheckXML报告文件的Python模块。当尝试解析字符串中包含“<”的XML元素中的属性之一时,它会令人窒息,它会将其解释为格式错误的XML,例如:<errormsg="Includefile<iostream>notfound.">(注意字符和“iostream”之间的空格必须放......
  • DroneVehicle数据集标签转换(.xml→.txt yolo_obb)
    1.数据集下载:目录1.数据集下载:2.数据集介绍:3.数据集标签转换1.DroneVehicle转DOTA2.DOTA转YOLO_OBB5.数据集标签可视化DroneVenicle数据集是由天津大学收集、标注的大型无人机航拍车辆数据集。DroneVenicle训练集下载地址:https://pan.baidu.com/s/1ptZCJ1mKYqFnMn......
  • IDEA解决java注释顶格、xml注释右对齐+无空格问题
    先配置java中注释格式: 然后是配置xml中的注释格式:还是CodeStyle,从java往下滑动到xml......
  • 使用nginx proxy_pass从s3存储桶中读取sitemap.xml文件
    使用nginxproxy_pass从s3存储桶中读取sitemap.xml文件 nginx是一款高性能的开源Web服务器软件,也可以作为反向代理服务器使用。proxy_pass是nginx的一个指令,用于将客户端的请求转发到其他服务器上。在使用nginx的proxy_pass指令从S3存储桶中读取sitemap.xml文件时,可以按......
  • 为什么 tree.write 不创建我的 XML 文件?
    在KubuntuLinux上使用PyCharm我通过添加条目来修改XML文件并将更改写入新文件,但该文件没有创建,也没有显示错误:importxml.etree.ElementTreeasETif__name__==('__main__:'):tree=ET.parse('/home/qual/PycharmProjects/Automation_learn/ip_phone_cfg.xm......
  • 从xml文件中读取配置的项目
    在软件运行过程中,有一些运行条件是经常会变化的。在需求变化时,只需要更改一下配置而不需要修改代码。我们有时候把这些配置放在xml文件中。接下来实现一个读取xml配置的项目。1.新建一个控制台程序,并且新建一个名为"Xml"的文件夹,并且创建一个xml文件用于存储相应的配置:2.建立一......
  • Android开发 - xmlns命名空间中tools详解
    xmlns:tools是什么命名空间tools可以告诉AndroidStudio,哪些属性在运行的时候是被忽略的,只在设计布局的时候有效。比如我们要让android:text属性只在布局预览中有效。tools可以覆盖android的所有标准属性,将android:换成tools:即可。同时在运行的时候就连tools:本身都是被忽略......
  • MP+XML手写sql语句分页查询
    原则:让IPage接收从数据库查处的记录@AutowaireprivateUserMapperuserMapper;publicPageDTO<UserVO>pageUser(UserPageQueryquery){IPage<UserVO>page=newPage<>(query.getPageNo(),2);page=userMapper.PageAndXml(query,page);List<U......