【发布时间】:2013-09-18 09:59:53
【问题描述】:
我正在尝试使用 minidom 在 Python 中解析 SAP 结果 xml 文件(在 soapUI 中生成),一切顺利,直到检索值。
无论是什么类型的节点,打印的值都是None 或者只是空字符串。
节点有不同的类型,到目前为止我能得到的唯一值是元素节点的标签名称。当谈到它的价值时,我得到None。
对于文本一,我得到#text 对应nodeName,3 对应nodeType,但空字符串对应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>
【问题讨论】:
-
我建议你使用 ElementTree 而不是 minidom。使用 ElementTree,XML 处理更加直接。请参阅以下问题:stackoverflow.com/q/12338877/407651、stackoverflow.com/q/16196501/407651。