<?xml version = "1.0" encoding = "utf-8"?>
<bookList type = "technology">
<book><name>selenium xml datadriven</name><author>davieyang</author></book><book><name>selenium excel datadriven</name><author>davieyang</author></book><book><name>selenium ddt data list</name><author>davieyang</author></book></bookList>
解析XML方法
# encoding = utf-8"""
__title__ = ''
__author__ = 'davieyang'
__mtime__ = '2018/4/21'
"""from xml.etree import ElementTree
classParseXML(object):def__init__(self, xmlPath):
self.xmlPath = xmlPath
defgetRoot(self):# 打開將要解析的XML文件
tree = ElementTree.parse(self.xmlPath)# 獲取XML文件的根節點對象,然後返回給調用者return tree.getroot()deffindNodeByName(self, parentNode, nodeName):# 通過節點的名字獲取節點對象
nodes = parentNode.findall(nodeName)return nodes
defgetNodeofChildText(self, node):# 獲取節點node下所有子節點的節點名作爲key,本節點作爲value組成的字典對象
childrenTextDict ={i.tag: i.text for i inlist(node.iter())[1:]}# 上面代碼等價於'''
childrenTextDict = {}
for i in list(node.iter())[1:]:
fhildrenTextDict[i.tag] = i.text
'''return childrenTextDict
defgetDataFromXml(self):# 獲取XML文檔的根節點對象
root = self.getRoot()# 獲取根節點下所有名爲book的節點對象
books = self.findNodeByName(root,"book")
dataList =[]# 遍歷獲取到的所有book節點對象# 取得需要的測試數據for book in books:
childrenText = self.getNodeofChildText(book)
dataList.append(childrenText)return dataList
if __name__ =="__main__":
xml = ParseXML(r"F:\seleniumWithPython\TestData\TestData.xml")
datas = xml.getDataFromXml()for i in datas:print(i["name"], i["author"])