python获取xml中的数据

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hju22/article/details/85111071

一、xml中节点包含的属性:

  1. nodeName——节点名称
  2. nodeValue——节点值
  3. nodeType——节点类型
    nodeType为1说明是元素节点,nodeType为2说明是属性节点。

二、节点类型

  1. 元素节点
  2. 文本节点
  3. 属性节点

三、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"))

运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/hju22/article/details/85111071