栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python与xml数据的交互

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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的语法规则如下



    
        CHL2108
        20220629
        164506
    
    
        张三>
        1
        
        SSM1050000000001
        001
        6391E8421C007ED5
        D0E8C46A0B765B
    
    
        2
    
    
        2207081541590398
        STM202206291645060000000000
        6232621151792579
        达拉崩吧班德贝蒂卜多比鲁翁·昆图库塔卡提考特苏瓦西拉松·木大
        755933363410722
        70000
        010021102121600095
        23301900000
        0075
        1456151561650569
        STM
    

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

上面这部分是xml的文档声明部分,包含了版本信息和编码方式,是可选的。其他
更多的规则请参考:https://www.runoob.com/xml/xml-syntax.html


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()方法提取出标签对返回的结果是一个列表,结果如下

>>>

**************************************************

1
2
6232621151792579
**************************************************
PayAcct标签内容如下:
1
2
6232621151792579

2. 获取标签属性值

通过getAttribute 获取标签的属性值。如下获取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'))

结果如下

>>>

[]
张三
**************************************************
login的属性值如下:
张三
123456

卷不动了,暂时记录到这,以后需要再更新

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1019404.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号