python与xml数据的交互详解

目录

一 什么是XML?

二 XML语法规则

1. xml语法规则

2. xml与html的区别

三 python与xml的交互

1. 获取标签对内的数据

2. 获取标签属性值

一 什么是XML?

python与json数据的交互详情 在这篇文章中我们介绍了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数据交互内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!

推荐阅读

    XML引入的常见问题

    XML引入的常见问题,,作者:angelgavin来源:CSDN 一般问题 什么是XML 可扩展标记语言(XML)是一个基于Web的通用语言,它使开发人员能够从许多不

    Python之可迭代对象、迭代器、生成器

    Python之可迭代对象、迭代器、生成器,迭代,生成器,一、概念描述可迭代对象就是可以迭代的对象,我们可以通过内置的iter函数获取其迭代器,可

    在wps导入xml|WPS表格导入XML数据

    在wps导入xml|WPS表格导入XML数据,导入,如何在,wps,xml,1.WPS表格怎么导入XML数据可以有三种方式导入数据:直接打开数据文件,使用ODBC数据源

    xml中合并的快捷键|xml文件怎么合并

    xml中合并的快捷键|xml文件怎么合并,,1. xml文件怎么合并1.打开一个需要用到的word文档文件。2.打开之后,在当前的页面中点击上面的 插入

    怎么用C语言写一个简单的XML文件

    怎么用C语言写一个简单的XML文件,文件,阿富汗,本文目录怎么用C语言写一个简单的XML文件c语言如何调用xml的接口函数用C语言读取xml文件,怎

    python用啥快捷键|python中快捷键

    python用啥快捷键|python中快捷键,,1. python中快捷键一、热键进入BIOS按主板的不同,在开机的第一时间按下对应的的热键就可以进入BIOS,不同

    python是一种什么类型语言

    python是一种什么类型语言,语言,是一种,本文目录python是一种什么类型语言python语言属于什么语言python是一种什么类型的语言python 是什