我已经阅读了这里有关此问题的几个答案,但仍然无法解决它。
基本上,我想打印子节点的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>
我正在尝试获取“total”的nodeValue。
这是我写的:
totalIssues = dom.getElementsByTagName('issues')[0].childNodes[1].childNodes[2]
到目前为止,我已经进行了实验,得到的唯一结果是 None
或空格。
另外,如何简单地通过名称获取 childNode?很多时候,会出现另一个元素,它会移动“总”元素的位置。
最佳答案
通过几个步骤获取它并明确标记名称:
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 字符串。
希望有帮助。
关于Python minidom 获取子节点值时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24559594/