一、xml中节点包含的属性:
- nodeName——节点名称
- nodeValue——节点值
- nodeType——节点类型
nodeType为1说明是元素节点,nodeType为2说明是属性节点。
二、节点类型
- 元素节点
- 文本节点
- 属性节点
三、python获取xml节点:
实例1 打印根节点信息
student.xml文件
<?xml version="1.0" encoding="utf-8"?>
<student>
<name>xiao</name>
<age>15</age>
<city>Beijing</city>
<login username="stuname" password="123456"/>
</student>
代码:
from xml.dom import minidom
#1.导入模块
dom=minidom.parse("E:\\pythontest\\test\\student.xml") #2.加载xml文件
root=dom.documentElement #3.获取dom对象元素
print(root.nodeName)
print(root.nodeValue)
print(root.nodeType)
运行结果:
注意:文件路径需要用反斜杠转义,否则会报错,找不到文件。
实例2 打印标签对之间的数据
node.firstChild.data
需求:将班级中所有的姓名打印出来
student.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<class>
<student>
<name>孙悟空</name>
<age>22</age>
</student>
<student>
<name>猪八戒</name>
<age>22</age>
</student>
</class>
代码:
from xml.dom import minidom #导入模块
dom=minidom.parse("e:\\pythontest\\test\\student.xml") #打开xml
names=dom.getElementsByTagName("name") #获取节点列表
for i in range(len(names)):
print(names[i].firstChild.data) #打印节点数据
运行结果:
实例3 打印节点属性
node.getAttribute(属性名)
需求:打印所有的账号信息
account.xml文件
<?xml version="1.0" encoding="utf-8"?>
<account>
<login username="user1" password="123456"/>
<login username="user2" password="654321"/>
</account>
代码:
from xml.dom import minidom #导入模块
dom=minidom.parse("e:\\pythontest\\test\\account.xml") #打开xml
logins=dom.getElementsByTagName("login") #获取节点列表
for i in range(len(logins)): #获取节点属性
print(logins[i].getAttribute("username"),logins[i].getAttribute("password"))
运行结果: