使用Python代码从xml文件中读取标记值。

时间:2014-10-15 10:59:52

标签: python xml

我需要从我的测试结果输出文件中读取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。

1 个答案:

答案 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')