我很迷惑minidom解析器处理空元素,如下面的代码部分所示。Python中的空XML元素处理
import xml.dom.minidom
doc = xml.dom.minidom.parseString('<value></value>')
print doc.firstChild.nodeValue.__repr__()
# Out: None
print doc.firstChild.toxml()
# Out: <value/>
doc = xml.dom.minidom.Document()
v = doc.appendChild(doc.createElement('value'))
v.appendChild(doc.createTextNode(''))
print v.firstChild.nodeValue.__repr__()
# Out: ''
print doc.firstChild.toxml()
# Out: <value></value>
我该如何获得一致的行为?我想收到空字符串作为值空元素(其中IS我放在XML结构中的第一位)。
不幸的是,这并没有解决我的问题。在我的代码中,我在XML文档中的TextElement上调用方法replaceWholeText。如果我以前在该TextElement中存储了空字符串,它将在下一次解析XML文件时消失,并且我将无法调用方法replaceWholeText。如果它不在那里,我可以重建那个元素,但这将是一个非常丑陋的黑客。 – Josip 2009-07-27 14:47:03
你是什么意思“重建元素”?它的存在,它的价值恰好是None而不是''。 – 2009-07-27 15:22:14