Python minidom 解析 xml 给出 None 或空字符串,而不是 xml 中的值

标签 python xml minidom

我正在尝试使用 minidom 在 Python 中解析 SAP 结果 xml 文件(在soapUI 中生成),一切都很顺利,直到检索值。

无论是什么类型的节点,打印的值都是None或者只是空字符串。 节点有不同的类型,到目前为止我能得到的唯一值是元素节点的标签名称。当谈到它的值(value)时,我得到None。 对于文本一,我为 nodeName 得到 #text,为 nodeType 得到 3,但为 nodeValue 得到空字符串.

有什么问题吗?

代码是:

from xml.dom.minidom import parse, Node

def parseData():

   try:
      data = parse('data.xml')
   except (IOError):
      print 'No \'data.xml\' file found. Move or rename the file.'

   Milestones = data.getElementsByTagName('IT_MILESTONES')

   for node in Milestones:
      item_list = node.getElementsByTagName('item')
      print(item_list[0].childNodes[1].nodeName)
      print(item_list[0].childNodes[1].nodeType)
      print(item_list[0].childNodes[1].nodeValue)

虽然 XML 结构的重要部分如下所示:

<IT_MILESTONES>
      <item>
         <AUFNR>000070087734</AUFNR>
         <INDEX_SEQUENCE>2300</INDEX_SEQUENCE>
         <MLSTN>1</MLSTN>
         <TEDAT>2012-08-01</TEDAT>
         <TETIM>09:12:38</TETIM>
         <LST_ACTDT>2012-08-01</LST_ACTDT>
         <MOBILE>X</MOBILE>
         <ONLY_SL/>
         <VORNR>1292</VORNR>
         <EINSA/>
         <EINSE/>
         <NOT_FOR_NEXT_MS>X</NOT_FOR_NEXT_MS>
      </item>
</IT_MILESTONES>

最佳答案

您应该查看 item_list[0].childNodes[1].childNodes。这些可能包含您正在寻找的内容。例如:

item_list[0].childNodes[11].childNodes[0].nodeValue

是日期

u'2012-08-01'

1 类型的节点没有 nodeValue,但有 childNodes3 类型的节点(文本节点)具有 nodeValue

关于Python minidom 解析 xml 给出 None 或空字符串,而不是 xml 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18869231/

相关文章:

python - 为什么 tarfile 模块不允许压缩 append ?

python - 在 python 中比较日期,== 有效但 <= 产生错误

java - XML 和 JAXB 中的 NIL/NULL 属性

python - 最小 DOM - 在根节点上设置一个属性

python - flask SQLAlchemy : How to extend the base Model class?

python - Elasticsearch查询不会带来任何成功

xml - XPATH:使用通配符命名空间选择多条记录

java - 使用 XSLT 中的 id 选择 XML 值

python:更改后如何物理保存xml文件

python - 使用 minidom 进行 XHTML 解析