我需要从我的测试结果输出文件中读取xml标签中的三个参数。 xml文件如下所示:
-<statistics>
+<total>
<tag> </tag>
-<suite>
<stat name="SignIn" id="s1" pass="1" fail="0">SignIn</stat>
</suite>
</statistics>
我必须从上面的子标记&#39;中读取名称,通过和失败的值。 (我需要为N&#39;数量的xml输出文件执行此操作,并将累积测试指标发送给项目的其他团队)
请提供Python中的代码段。
提前致谢, Ishwar。
答案 0 :(得分:0)
正如Aidan Kane所说,一般来说,最好使用适当的XML / HTML解析库,例如lxml(或Beautiful Soup),但是当XML结构可预测且简单时,可以使用正则表达式(也就是正则表达式) )提取数据。
因此,如果stat
标记中的字段始终与上面给出的相同(并且顺序相同),则可以执行此操作以提取名称,传递和失败:
#! /usr/bin/env python
s = '''-<statistics>
+<total>
<tag> </tag>
-<suite>
<stat name="SignIn" id="s1" pass="1" fail="0">SignIn</stat>
</suite>
</statistics>
'''
def main():
import re
print s
pat = re.compile(r'<stat name="(.*?)" id=".*?" pass="(.*?)" fail="(.*?)">.*?</stat>')
print pat.search(s).groups()
if __name__ == "__main__":
main()
<强>输出强>
-<statistics>
+<total>
<tag> </tag>
-<suite>
<stat name="SignIn" id="s1" pass="1" fail="0">SignIn</stat>
</suite>
</statistics>
('SignIn', '1', '0')