iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python与xml数据的交互详解
  • 462
分享到

python与xml数据的交互详解

2024-04-02 19:04:59 462人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录一 什么是XML?二 XML语法规则1. xml语法规则2. xml与html的区别三 python与xml的交互1. 获取标签对内的数据2. 获取标签属性值一 什么是XML?

一 什么是XML?

PythonJSON数据的交互详情 在这篇文章中我们介绍了json是一种独立于编程语言和平台的数据存储和交换方式(格式),其实xml和json基本一样,也是一种用于进行数据存储和交换的方式,并且也独立于编程语言和平台。
XML可扩展标记语言(英语:Extensible Markup Language,简称:XML)是一种标记语言,是从标准通用标记语言(SGML)中简化修改出来的。XML设计的宗旨就是用来传输数据的。

二 XML语法规则

1. xml语法规则

xml的语法规则和html的语法规则很像,但却有着明显的差别。相同的是它们都用标签对来存储数据,但是html的标签都是预定义的,而xml的标签则完全是由编辑者自己定义的。

xml的语法规则如下:

<?xml version="1.0" encoding="utf-8"?>
<CFX>
    <Head>
        <TxCode>CHL2108</TxCode>
        <WorkDate>20220629</WorkDate>
        <WorkTime>164506</WorkTime>
    </Head>
    <WDWMSG>
        <login username="张三" passWord="123456">张三</login>>
        <PayAcct>1</PayAcct>
        <TrnPwd></TrnPwd>
        <TsmNbr>SSM1050000000001</TsmNbr>
        <PwdKeySeq>001</PwdKeySeq>
        <PwdChkVal>6391E8421C007ED5</PwdChkVal>
        <Reverse>D0E8C46A0B765B</Reverse>
    </WDWMSG>
    <PSBMSG>
        <PayAcct>2</PayAcct>
    </PSBMSG>
    <CHL2108>
        <TrnSerial>2207081541590398</TrnSerial>
        <CHLSerial>STM202206291645060000000000</CHLSerial>
        <PayAcct>6232621151792579</PayAcct>
        <HandOrgName>达拉崩吧班德贝蒂卜多比鲁翁·昆图库塔卡提考特苏瓦西拉松·木大</HandOrgName>
        <PrintAcct>755933363410722</PrintAcct>
        <TrnAmt>70000</TrnAmt>
        <TaxVouNo>010021102121600095</TaxVouNo>
        <TaxOrGCode>23301900000</TaxOrgCode>
        <TrnPlace>0075</TrnPlace>
        <TaxPayCode>1456151561650569</TaxPayCode>
        <TrnSrc>STM</TrnSrc>
    </CHL2108>
</CFX>

xml 必须包含根元素,它是所有其它元素的父元素,如上文中的CFXxml 标签必须是成对出现的,即必须有关关闭标签

<?xml version="1.0" encoding="utf-8"?>

上面这部分是xml的文档声明部分,包含了版本信息和编码方式,是可选的。其他

更多的规则请参考:

2. xml与html的区别

xml和html很像,但区别也很大,具体不同如下:

  • html标签是预定义的,而xml则是由使用者自己定义
  • xml被设计用来传输和存储数据,其焦点是数据的内容
  • html被设计用来显示数据,其焦点是数据的外观

三 python与xml的交互

python获取xml的数据信息一般用xml.dom 来解析,具体如下

1. 获取标签对内的数据

比如提取上面xml文件中PayAcct 标签内的数据

from xml.dom import minidom

#mimidom.parse将xml文件解析成DOM文档
data = minidom.parse('../练习文件/XML练习.XML')
print(type(data))
print('*'*50)

#首先利用data.getElementsByTagName('标签名')提取出标签
payacct = data.getElementsByTagName('PayAcct')
print(type(payacct))
for i in range(len(payacct)):
    print(payacct[i].toxml())#toxml还原xml格式
print('*'*50)

print('PayAcct标签内容如下:')
#再用 firstChild.data 获取标签数据值
for i in range(len(payacct)):
    print(payacct[i].firstChild.data)

如上,minidom.parse()的作用是将xml文档解析成DOM文档,然后通过getElementsTagName()方法提取出标签对,最后通过firstChild.data获取标签内的数据,过程中需要注意的是getElementsTagName()方法提取出标签对返回的结果是一个列表,

结果如下:

>>>
<class 'xml.dom.minidom.Document'>
**************************************************
<class 'xml.dom.minicompat.nodeList'>
<PayAcct>1</PayAcct>
<PayAcct>2</PayAcct>
<PayAcct>6232621151792579</PayAcct>
**************************************************
PayAcct标签内容如下:
1
2
6232621151792579

2. 获取标签属性值

通过getAttribute 获取标签的属性值。如下获取login标签的属性值

<login username="张三" password="123456">张三</login>
from xml.dom import minidom

#mimidom.parse将xml文件解析成DOM文档
data = minidom.parse('../练习文件/XML练习.XML')

#首先利用data.getElementsByTagName('标签名')提取出标签
login = data.getElementsByTagName('login')
print(type(login))
print(login)
for i in range(len(login)):
    print(login[i].toxml())
print('*'*50)

#再用 getAttribute('属性值') 获取标签属性值
print('login的属性值如下:')
print(login[0].getAttribute('username'))
print(login[0].getAttribute('password'))

结果如下:

>>>
<class 'xml.dom.minicompat.NodeList'>
[<DOM Element: login at 0x188b60ec048>]
<login password="123456" username="张三">张三</login>
**************************************************
login的属性值如下:
张三
123456

到此这篇关于python与xml数据的交互详解的文章就介绍到这了,更多相关python与xml数据交互内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: python与xml数据的交互详解

本文链接: https://www.lsjlt.com/news/119540.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python与xml数据的交互详解
    目录一 什么是XML二 XML语法规则1. xml语法规则2. xml与html的区别三 python与xml的交互1. 获取标签对内的数据2. 获取标签属性值一 什么是XML py...
    99+
    2024-04-02
  • python与json数据的交互详情
    目录一 什么是json二 json语法格式三 python与json的交互1. json.loads()2. json.load()3. json.dumps()4. json.du...
    99+
    2024-04-02
  • HTML 与 Excel 交互:读取数据详解
    html 中读取 excel 数据的方法:使用 javascript filereader api 将 excel 文件加载到 filereader 中。将 excel 文件的内容转换为...
    99+
    2024-04-09
    html excel
  • 详解c#与python的交互方式
    目录前言: 一、IronPython 二、Python打包exe调用 三、Python提供WebApi接口(推荐) 总结: 前言:  在平时工作中,需求有多种实现方式;根据不同的需...
    99+
    2024-04-02
  • AJAX实现JSON与XML数据交换方法详解
    目录1、JS中如何创建和访问JSON对象2、基于JSON的数据交换3、基于XML的数据交换1、JS中如何创建和访问JSON对象 (1)在javascript语言中怎么创建一个json...
    99+
    2023-01-13
    AJAX JSON与XML数据交换 AJAX JSON数据交换 AJAX XML数据交换
  • python怎么与mysql数据库交互
    本篇内容介绍了“python怎么与mysql数据库交互”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  1、安装pymysql库  如果你想...
    99+
    2023-06-02
  • Python与数据库的交互怎么实现
    本篇内容介绍了“Python与数据库的交互怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!MongoDB安装模块pip install...
    99+
    2023-06-22
  • Python与数据库的交互问题小结
    目录MongoDB连接数据库增删改查封装MySQL连接数据库执行操作查询数据异常处理Redis连接数据库执行操作MongoDB 安装模块pip install pymongo 连接数...
    99+
    2024-04-02
  • Python ORM 与数据库交互的最佳实践
    Python 对象关系映射 (ORM) 是一种将数据库中的数据映射到 Python 对象的方法,从而简化与数据库的交互。掌握 ORM 的最佳实践对于优化数据库交互、提高性能和维护代码可读性至关重要。 数据库建模 遵循实体关系模型 (ER...
    99+
    2024-03-15
    ORM
  • QT与javascript交互数据的实现
    一、数据从QT流向JS 1、QT调用JS的函数,JS通过形参获得QT的值 2、JS调用QT的函数,QT函数的返回值进入JS 二、数据从JS流向QT 1、JS调用QT的函数,QT通过形...
    99+
    2024-04-02
  • PHP 函数与 MySQL 数据库的交互
    php 具有连接、查询和操作 mysql 数据库的功能。常用的 php 函数包括:mysqli() 用于连接数据库,query() 用于执行查询,prepare() 用于准备插入语句。实...
    99+
    2024-04-13
    mysql php 用户注册
  • Django与数据库交互的实现
    目录1 如何创建项目数据库2 进行数据库与django的交互3 添加数据4 查找数据4 更新数据1 如何创建项目数据库 首先,在虚拟机数据库中建立一个与项目同名的数据库,方便管理。 ...
    99+
    2024-04-02
  • python 与 C 的交互(ctype
    ctypes是Python的一个外部库,可以使用python语言调用已经编译好的C语言函数以及数据类型并进行数据交换等。ctypes的官方文档在https://docs.python.org/3/library/ctypes....
    99+
    2023-01-31
    python ctype
  • mybatis如何与数据库交互
    MyBatis是一个开源的持久层框架,可以与数据库进行交互。下面是MyBatis与数据库交互的步骤:1. 配置数据库连接:在MyBa...
    99+
    2023-08-19
    mybatis 数据库
  • 详解Python flask的前后端交互
    目录前端index.htmlscript.js后端app.py总结场景:按下按钮,将左边的下拉选框内容发送给后端,后端再将返回的结果传给前端显示。 按下按钮之前: 按下按钮之后: ...
    99+
    2024-04-02
  • Django与多个数据库交互
    定义数据库 在Django中使用多个数据库的第一步是告诉Django您将要使用的数据库服务器。 数据库可以有您选择的任何别名。但是,别名 default 有着特殊的意义。Django使用别名为 default 为默认数据库。 例如 set...
    99+
    2023-01-30
    多个 数据库 Django
  • 使用 PHP XML-RPC 探索无缝数据交互的奥秘
    服务器端实现 要创建一个 XML-RPC 服务器,您可以使用 xmlrpc_server_create() 函数。此函数返回一个 xmlrpc_server 对象,您可以使用它来注册要公开给客户机的功能。使用 xmlrpc_server_...
    99+
    2024-04-02
  • 详解React Native与IOS端之间的交互
    目录前置准备RN 传值给 iOS方法 1 正常传值给原生方法 2 传递回调函数方法 3 获取 promise 回调方法 4 获取 promise 的同步方式iOS 传值给 RN 端初...
    99+
    2024-04-02
  • Django与图表的数据交互的实现
    目录环境相关实现思路(需要理解的请结合代码来看)代码:成果展示参考博客在Django开发过程中,遇到了需要图表进行数据可视化的需要。因此查询了相关文档,并记录下如何实现与图表的数据交...
    99+
    2024-04-02
  • python实现与Oracle数据库交互操作示例
    目录1、安装准备2、instantclient的安装说明3、instantclient安装步骤4、还有几个需要注意的地方1)设置NLS_LANG环境变量:解决中文乱码2)关于TNS_...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作