python把Teslink导出的xml格式转换为excel

来源:互联网 发布:js获取audio播放时间 编辑:程序博客网 时间:2024/04/29 03:12

前言:今天把testlink里面的测试用例导出出来,但是格式是xml文件,网上看到的转换工具都是需要破解的。打开看看里面数据挺有规律的,于是自己动手写了个脚本。

思路:读取xml节点数据写入到excel表格。

准备:需要xml和xlwt的库,python版本2.7

废话不多说直接上代码

import xml.dom.minidomimport xlwtfile=xlwt.Workbook(encoding='ascii')table=file.add_sheet('test',cell_overwrite_ok=True)dom = xml.dom.minidom.parse('2.xml')root=dom.documentElementitemlist = root.getElementsByTagName('testcase')plist = root.getElementsByTagName('preconditions')actions = root.getElementsByTagName('actions')exs = root.getElementsByTagName('expectedresults')item=itemlist[0]un=item.getAttribute("name")print unfor i in range(0,len(itemlist)):    item=itemlist[i]    pp=plist[i]    un=item.getAttribute("name")    table.write(i,0,un)    try:        action=actions[i]        ex=exs[i]    except IndexError,e:        continue    if pp.firstChild==None:        continue    else:        table.write(i,1,pp.firstChild.data)        table.write(i,2,action.firstChild.data)        table.write(i,3,ex.firstChild.data)file.save('mytest.xls')print "over"

6.17 今天把程序功能升级了一下。可以把当前目录下所有的xml文件一起转换,并替换excel表格里的<p></p><br/>标签

上代码

#coding=utf-8import xml.dom.minidomimport xlwt#在这里设置当前目录下的xml文件个数并把文件名命名为1.xml,2.xml以此类推for j in range(0,5):    filename=str(j)+".xml"    savename=str(j)+".xls"    file=xlwt.Workbook(encoding='ascii')    table=file.add_sheet('test',cell_overwrite_ok=True)    dom = xml.dom.minidom.parse(filename)    root=dom.documentElement    itemlist = root.getElementsByTagName('testcase')    plist = root.getElementsByTagName('preconditions')    actions = root.getElementsByTagName('actions')    exs = root.getElementsByTagName('expectedresults')    item=itemlist[0]    un=item.getAttribute("name")    print u"开始转换%s文件"%filename    for i in range(0,len(itemlist)):        item=itemlist[i]        pp=plist[i]        un=item.getAttribute("name")        table.write(i,0,un)        action=actions[i]        ex=exs[i]        if pp.firstChild==None:            continue        else:            mydata=pp.firstChild.data.replace('<p>','').replace('</p>','').replace('<br />','').replace('<br/>','')            table.write(i,1,mydata)                   try:                mydata1=action.firstChild.data.replace('<p>','').replace('</p>','').replace('<br />','').replace('<br/>','')                table.write(i,2,mydata1)            except AttributeError,e:                pass            try:                mydata2=ex.firstChild.data.replace('<p>','').replace('</p>','').replace('<br />','').replace('<br/>','')                table.write(i,3,mydata2)            except AttributeError,e:                pass    file.save(savename)print u"所有文件转换完成"


0 0