2013-01-18 90 views
0

我是Python新手。我正試圖在python下解析XML以獲得測試總結。Python中的XML解析器

<?xml version="1.0"?> 
<SquishReport version="2.1"> 
    <test name="HMI_testing"> 
    <prolog time="2013-01-18T14:41:09+05:30"/> 
    <test name="tst_case1"> 
     <prolog time="2013-01-18T14:41:09+05:30"/> 
     <verification name="VP5" file="D:/Squish/HMI_testing/tst_case1/test.py" type="properties" line="6"> 
     <result time="2013-01-18T14:41:10+05:30" type="PASS"> 
      <description>VP5: Object property comparison of ':_QMenu_3.enabled' passed</description> 
      <description type="DETAILED">'false' and 'false' are equal</description> 
      <description type="object">:_QMenu_3</description> 
      <description type="property">enabled</description> 
      <description type="failedValue">false</description> 
     </result> 
     </verification> 
     <epilog time="2013-01-18T14:41:11+05:30"/> 
    </test> 
    <test name="tst_Setup_Menu"> <prolog time="2013-01-18T14:41:11+05:30"/> 
     <verification name="VP1" file="D:/Squish/HMI_testing/tst_Setup_Menu/test.py" type="screenshot" line="6"> 
     <result time="2013-01-18T14:41:12+05:30" type="PASS"> 
      <description>VP1: Screenshot comparison of ':_QMenu_3' passed</description> 
      <description type="DETAILED">Screenshots are considered identical</description> 
      <description type="object">:_QMenu_3</description> 
      <description type="failedImage">Screenshots are considered identical</description> 
     </result> 
     </verification> 
     <verification name="VP2" file="D:/Squish/HMI_testing/tst_Setup_Menu/test.py" type="screenshot" line="8"> 
     <result time="2013-01-18T14:41:16+05:30" type="FAIL"> 
      <description>VP2: Screenshot comparison of ':_QMenu_3' failed</description> 
      <description type="DETAILED">Screenshots do not match. Differing screenshot saved as 'D:/Squish/HMI_testing/tst_Setup_Menu/verificationPoints\failedImages\failed_1.png'</description> 
      <description type="object">:_QMenu_3</description> 
      <description type="failedImage">D:/Squish/HMI_testing/tst_Setup_Menu/verificationPoints\failedImages\failed_1.png</description> 
     </result> 
     </verification> 
     <verification name="VP3" file="D:/Squish/HMI_testing/tst_Setup_Menu/test.py" type="screenshot" line="9"> 
     <result time="2013-01-18T14:41:20+05:30" type="PASS"> 
      <description>VP3: Screenshot comparison of ':_QMenu_4' passed</description> 
      <description type="DETAILED">Screenshots are considered identical</description> 
      <description type="object">:_QMenu_4</description> 
      <description type="failedImage">Screenshots are considered identical</description> 
     </result> 
     </verification> 
     <epilog time="2013-01-18T14:41:28+05:30"/> 
    </test> 
    <epilog time="2013-01-18T14:41:28+05:30"/> 
    </test> 
</SquishReport> 

我嘗試下面的代碼,但我不能夠解析按我的需要

import sys 
import xml.dom.minidom as XY 
#import xml.etree.ElementTree as ET 

file = open("result.txt", "w") 
tree = XY.parse('D:\\Squish\\squish results\\Results-On-2013-01-18_0241 PM.xml') 
elem = tree.getElementsByTagName('test') 
variable = elem[0].firstChild.data 
print (variable) 

我所試圖做的是,從第一次「測試」標籤中提取「HMI_testing」,「測試名稱「tst_case1,並從xml文件傳入/傳出

回答

1

而不是

variable = elem[0].firstChild.data 

使用

variable = elem[0].getAttribute('name') 

你是不是想找一個子元素,而是屬性name