Python解析XML文件

示例一:

<?xml version="1.0" encoding="UTF-8"?>
<Humors>
	<Humor>
		<ID>H01</ID>
		<Contents>“老师,您找我啊?” “听说你最近经常犯事儿啊。你昨天逃课了吧?” “额。。。我是有逃课。” “你在宿舍用热得快了吧?” “我是有用的。” “你在寝室用电吹风了吧?” “嗯。。。我是有用的。” “哦,老师错怪你了,去把你是有(室友)叫来!”</Contents>
		<Class>谐音</Class>
	</Humor>
	<Humor>
		<ID>H02</ID>
		<Contents>“你们商店门口的牌子上明明写着上午八点开门,可每天都要推迟二十分钟。” “我们马上就改!” “打算怎么改呢?” “把牌子上的时间改为八点三十分。”</Contents>
		<Class>反转</Class>
	</Humor>
</Humors>

代码:

from xml.dom.minidom import parse
import xml.dom.minidom
#from config import globalparam

xml_path='路径'

# 使用minidom解析器打开 XML 文档
DOMTree = xml.dom.minidom.parse(xml_path)
collection = DOMTree.documentElement
#建立Humor对象的列表
Humors = collection.getElementsByTagName("Humor")

data_list=[]
for humor in Humors:
    ID = humor.getElementsByTagName('ID')[0]
    #print("ID: %s" % ID.childNodes[0].data)
    #或者写法也可以是:ID_str = ID.firstChild.data
    ID_str = ID.childNodes[0].data
    
    
    Contents = humor.getElementsByTagName('Contents')[0]
    Contents_str = Contents.childNodes[0].data
    
    Class = humor.getElementsByTagName('Class')[0]
    Class_str = Class.childNodes[0].data
    
    data_list.append(ID_str+'\t'+Contents_str+'\t'+Class_str)

示例二:

原xml文件:     loginError.xml

<?xml version="1.0" encoding="UTF-8"?>
<Data>
    <test>RpmsLoginCase</test>
    <failLogin1 username="" password="" expected="请填写手机号" />
    <failLogin2 username="13679130021" password="" expected="请输入密码" />
    <failLogin3 username="13679130021" password="12345678" expected="请输入验证码" />
</Data>

读取xml的py文件:     xmlData.py

# coding:utf-8
import xml.dom.minidom
from config import globalparam
#可能是读取文件名
xml_path=globalparam.xml_path
 
def getXmlData(value):
    dom = xml.dom.minidom.parse(xml_path)
    db = dom.documentElement
    name = db.getElementsByTagName(value)
    nameValue = name[0]
    return nameValue.firstChild.data
 
def getXmlUser(parent, child):
    dom = xml.dom.minidom.parse(xml_path)
    db = dom.documentElement
    itemlist = db.getElementsByTagName(parent)
    item = itemlist[0]
    return item.getAttribute(child)
 
if __name__=='__main__':
    print getXmlData('test')
    print  getXmlUser('failLogin1','expected')

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值