什么是XML文件?
xml即可扩展标记语言,它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
从结构上,很像HTML超文本标记语言。但他们被设计的目的是不同的,具体如下:
XML 被设计用来传输和存储数据
HTML 被设计用来显示数据
创建xml文件:
Nancy
23
Chengdu
Anne
24
Chongqing
Hugh
25
Beijing
Bob
27
Shanghai
XML节点
xml文件节点一般包含3类:
元素节点
文本节点
属性节点
每个节点都拥有包含着关于节点某些信息的属性。这些属性是:
nodeName(节点名称)
nodeValue(节点值)
nodeType(节点类型)
读取元素节点
案例:查看Class_info.xml文件里Class节点的属性(结点名称,节点的值、节点类型)
from xml.dom importminidom#加载xml文件
dom=minidom.parse('Class_info.xml')#加载dom对象元素
root=dom.documentElement#打印节点信息
print(root.nodeName) #获取节点名称
print(root.nodeValue) #获取节点值
print(root.nodeType) #获取节点类型,元素节点返回1,属性节点返回2
运行结果:
Class
None
1
读取文本节点的值
案例:分别打印出Class_info.xml里的学生和老师的详细信息(姓名,年龄、城市)
from xml.dom importminidom#打开文件
dom=minidom.parse('Class_info.xml')#获取文档对象元素
root=dom.documentElement#根据标签名称获取标签对象
names=root.getElementsByTagName('name')
ages=root.getElementsByTagName('age')
citys=root.getElementsByTagName('city')#分别打印显示xml文档标签对里面的内容
for i in range(4):print(names[i].firstChild.data)print(ages[i].firstChild.data)print(citys[i].firstChild.data)
运行结果:
Nancy
23
Chengdu
Anne
24
Chongqing
Hugh
25
Beijing
Bob
27
Shanghai
读取属性节点的值
案例:分别读取打印老师和学生的账号密码。
from xml.dom importminidom
dom=minidom.parse('Class_info.xml')
root=dom.documentElement
logins=root.getElementsByTagName('login')#获取login标签的username属性
for i in range(2):
username=logins[i].getAttribute('username')
password=logins[i].getAttribute('password')print(username)print(password)
运行结果:
student
123456
teacher
888888
读取子节点信息
案列:读取子节点相关属性
from xml.dom importminidom
dom=minidom.parse('Class_info.xml')
root=dom.documentElement
tags=root.getElementsByTagName('student')print(tags[0].nodeName)print(tags[0].nodeType)print(tags[0].nodeValue)
运行结果:
student
1
None