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

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

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

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

废话不多说直接上代码

import xml.dom.minidom
import xlwt
file=xlwt.Workbook(encoding='ascii')
table=file.add_sheet('test',cell_overwrite_ok=True)
dom = xml.dom.minidom.parse('2.xml')
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 un
for 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-8
import xml.dom.minidom
import 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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值