创建XML文件
创建一个xml文件存储员工(姓名,年龄,城市),老板(姓名,年龄,城市)、账户密码等信息。
<?xml version="1.0" encoding="UTF-8"?>
<Class>
<staff>
<name>张三</name>
<age>23</age>
<city>北京</city>
</staff>
<staff>
<name>李四</name>
<age>20</age>
<city>上海</city>
</staff>
<staff>
<name>王五</name>
<age>50</age>
<city>深圳</city>
</staff>
<boss>
<name>大唐</name>
<age>24</age>
<city>广州</city>
</boss>
<count>
<login username="staff" password="123" />
<login username="boss" password="321" />
</count>
</Class>
获取元素节点
查看上面XML文件的元素节点,示例代码如下:
from xml.dom import minidom
#加载xml文件
dom=minidom.parse('Class_info.xml')
#加载dom对象元素
root=dom.documentElement
#打印节点信息
print(root.nodeName)
print(root.nodeValue)
print(root.nodeType)
nodeName 节点名称
nodeValue 返回文本节点的值
nodeType 属性返回以数字值返回指定节点的节点类型。
注意:
1.如果节点是元素节点,则 nodeType 属性将返回 1。
2.如果节点是属性节点,则 nodeType 属性将返回 2。
读取XML文本节点的值
打印出XML中员工和老板的信息
#导入相关模块
from xml.dom import minidom
#打开文件
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)
读取属性节点的值
分别读取老板和员工的账户密码,示例代码如下:
#导入相关模块
from xml.dom import minidom
#打开文件
dom=minidom.parse('Class_info.xml')
#获取文档对象元素
root=dom.documentElement
#根据标签名获取标签对象
logins=root.getElementsByTagName('login')
#getAttribute获取login标签的username、password属性,再分别打印
for i in range(2):
print("用户类型:"+logins[i].getAttribute('username'))
print("密码:"+logins[i].getAttribute('password'))
读取子节点的值
子节点staff中的相关属性
nodeName(节点名称)
nodeValue(节点值)
nodeType(节点类型)
#导入相关模块
from xml.dom import minidom
#打开文件
dom=minidom.parse('Class_info.xml')
#获取文档对象元素
root=dom.documentElement
#根据标签名称获取子节点标签对象
tags=root.getElementsByTagName('staff')
#分别输出子节点的属性信息
print(tags[0].nodeName)
print(tags[0].nodeType)
print(tags[0].nodeValue)
print(tags[0].tagName)
未完,待补充~