Python minidom 获取子节点值时遇到问题

标签 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>

我正在尝试获取“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/

相关文章:

python - 使用时区打印正确的时间,Python

python - 如何并行迭代两个列表?

XSL 文件的 javascript XML 处理不起作用

python - 在Python中将xml元素解析为列表

python - 尝试将文件作为存档打开,否则作为普通文件读取

iPhone 处理 xml、soap、JSON、RESTful

javascript - AngularJS http 从 xml api 获取

python - 使用Python多行解析Xml

python minidom - 从同名的父节点获取数据

python - 将 flask_login session 与 jinja2 模板一起使用