Python解析XML文件

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

示例一:

<?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')

猜你喜欢

转载自blog.csdn.net/lyb3b3b/article/details/82379048