Python minidom无法获取子节点的值

时间:2014-07-03 17:07:49

标签: python xml minidom

我已就这个问题在这里阅读了几个答案,我仍然无法解决。

基本上,我想打印子节点的nodeValue。

这是xml:

 <issues>
   <maxResultsReached>true</maxResultsReached>
   <paging>
     <pageIndex>2</pageIndex>
     <pageSize>500</pageSize>
     <total>10000</total>
     <fTotal>10,000</fTotal>
     <pages>20</pages>
   </paging>
 <issues>

我正在尝试获得&#34; total&#34;的nodeValue。

这是我写的:

totalIssues = dom.getElementsByTagName('issues')[0].childNodes[1].childNodes[2]

到目前为止,我已经尝试了我得到None或空格的唯一结果。

另外,如何通过名称获取childNode?由于很多次,会有另一个元素出现,这将改变&#34; total&#34;的位置。元件。

1 个答案:

答案 0 :(得分:2)

通过几个步骤获取它并明确标记名称:

issue = dom.getElementsByTagName('issues')[0]
paging = issue.getElementsByTagName('paging')[0]
total = paging.getElementsByTagName('total')[0]
print total.firstChild.nodeValue   # prints 10000

仅供参考,您认为使用minidom进行xml解析并不好玩吗?好的,这是使用标准库中的xml.etree.ElementTree的替代方法:

issues = ET.fromstring(data)
total = issues.find('./paging/total')
print total.text  # prints 10000

其中data是您的XML字符串。

希望有所帮助。