我很迷惑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