python获取xml中的数据

2 篇文章 0 订阅

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

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值