免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 3728 | 回复: 24
打印 上一主题 下一主题

[文本处理] 想把xml文件解析成一种直观便于阅读的文本比如HTML CVS [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-07-24 09:43 |只看该作者 |倒序浏览
本帖最后由 bpzhang2008 于 2012-07-24 16:36 编辑

RT,请大家给点意见看看要怎么处理。或者给点建议也可以

<?xml version="1.0"?>
<unittest-results tests="13" failedtests="2" failures="5" time="5.013"><test suite="mytestsuite" name="usemacrosasinput" time="0"/><test suite="mytestsuite" name="usecustomfileok" time="0"/><test suite="mytestsuite" name="customfilisnull" time="0"/><test suite="mytestsuite" name="filewasnotexits" time="0"/><test suite="mytestsuite" name="filenoringht" time="0"/><test suite="mytestsuite" name="getconfitem" time="0"/><test suite="mytestsuite" name="testsetconfitem" time="0"/><test suite="mytestsuite" name="testsetkeynull" time="0"><failure message="testlibsetting.cpp(221) : Expected 0 but was -2147483644"/></test><test suite="mytestsuite" name="testsetvalues" time="0.004"><failure message="testlibsetting.cpp(277) : Expected  but was  "/><failure message="testlibsetting.cpp(289) : Expected  but was :"/><failure message="testlibsetting.cpp(301) : Expected  but was     "/><failure message="testlibsetting.cpp(313) : Expected  but was ="/></test><test suite="mytestsuite" name="setvaluetwice" time="0"/><test suite="mytestsuite" name="nowritetoconfigfile" time="0"/><test suite="mytestsuite" name="testgetallconfitem" time="0.003"/><test suite="mytestsuite" name="testregistercallbackmethod" time="5.002"/>
</unittest-results>

上面是我想处理的xml文件

想要获得的结果

<unittest-results tests="13" failedtests="2" failures="5" time="5.013">
casename=usemacrosasinput         result=success
casename=usecustomfileok          result=success
casename=customfilisnull         result=success
casename=filewasnotexits         result=success
casename=filenoringht         result=success
casename=getconfitem         result=success
casename=testsetconfitem         result=success
- <test suite="mytestsuite" name="testsetkeynull" time="0">
  <failure message="testlibsetting.cpp(221) : Expected 0 but was -2147483644" />
  </test>
- <test suite="mytestsuite" name="testsetvalues" time="0.004">
  <failure message="testlibsetting.cpp(277) : Expected but was" />
  <failure message="testlibsetting.cpp(289) : Expected but was :" />
  <failure message="testlibsetting.cpp(301) : Expected but was" />
  <failure message="testlibsetting.cpp(313) : Expected but was =" />
  </test>
casename=nowritetoconfigfile         result=success
casename=testgetallconfitem         result=success
casename=testregistercallbackmethod         result=succes
s

论坛徽章:
0
2 [报告]
发表于 2012-07-24 09:46 |只看该作者
你在说什么啊 能不能把例子弄的简练点啊~好乱啊~

论坛徽章:
0
3 [报告]
发表于 2012-07-24 09:54 |只看该作者
这个是测试工具输出的测试报告,但是格式为xml的,现在想直接获取里面的name即测试用例名称,如果有failure message还有把失败信息也给取出来输出成文本或者html 或者CVS都行
回复 2# dahaoshanhe


   

论坛徽章:
0
4 [报告]
发表于 2012-07-24 09:55 |只看该作者
:wink: 有些看不懂!

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
5 [报告]
发表于 2012-07-24 10:01 |只看该作者
xmlstarlet

论坛徽章:
0
6 [报告]
发表于 2012-07-24 10:02 |只看该作者
想把测试报告里面的测试用例名称取出来然后自己在加一个测试结果,如果失败的用例话还想把失败的信息给取出来回复 4# lingz0518


   

论坛徽章:
0
7 [报告]
发表于 2012-07-24 10:04 |只看该作者
能否多给点提示信息,小弟刚接触这东西。很生疏
回复 5# blackold


   

论坛徽章:
0
8 [报告]
发表于 2012-07-24 10:05 |只看该作者
猜一个,这个是楼主要的结果?
  1. sed -nr 's/<test.*name="([^"]*)".*\/>/\1/p;/<test.*[^\/]>/{:1 N;/<\/test>/!b1;p}' data
复制代码
  1.   usemacrosasinput
  2.   usecustomfileok
  3.   customfilisnull
  4.   filewasnotexits
  5.   filenoringht
  6.   getconfitem
  7.   testsetconfitem
  8. - <test suite="mytestsuite" name="testsetkeynull" time="0">
  9.   <failure message="testlibsetting.cpp(221) : Expected 0 but was -2147483644" />
  10.   </test>
  11. - <test suite="mytestsuite" name="testsetvalues" time="0.004">
  12.   <failure message="testlibsetting.cpp(277) : Expected but was" />
  13.   <failure message="testlibsetting.cpp(289) : Expected but was :" />
  14.   <failure message="testlibsetting.cpp(301) : Expected but was" />
  15.   <failure message="testlibsetting.cpp(313) : Expected but was =" />
  16.   </test>
  17.   setvaluetwice
  18.   nowritetoconfigfile
  19.   testgetallconfitem
  20.   testregistercallbackmethod
复制代码

论坛徽章:
0
9 [报告]
发表于 2012-07-24 10:12 |只看该作者
基本就是这样了,但是能不能把结果改成name=usemacrosasinput。如果这一行没有fail message的话我想再加一个字段即测试结果 result=success如果那一行有失败信息 也提前name 然后rssult=failure,这样有可行方案么,哥们
回复 8# jiejie455


   

论坛徽章:
0
10 [报告]
发表于 2012-07-24 10:21 |只看该作者
建议你做一个示例目标文档,那样大家比较好理解你要什么。这样的话解决方法应该马上就出来了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP