<![CDATA [測試]] > 我得到空白。從javascript中讀取cdata中的xml
var dataNode=Ext.DomQuery.selectNode('data',xml); console.log(dataNode.childNodes[0].nodeValue); console.log(dataNode.nodeValue);
<![CDATA [測試]] > 我得到空白。從javascript中讀取cdata中的xml
var dataNode=Ext.DomQuery.selectNode('data',xml); console.log(dataNode.childNodes[0].nodeValue); console.log(dataNode.nodeValue);
雖然我們不能沒有正在解析的XML肯定地說,通常的原因來自childNodes[0]
(firstChild
)「獲得空白」是有父母的開始標記之間的空白文本節點您正在尋找的節點:
<data>
<![CDATA[ foo ]]>
</data>
在保留CDATA節的XML解析器,那將給予data
元素三個孩子:包含新行和一些空格的文本節點; CDATASection節點;和另一個帶有換行符的Text節點。
所以,你可以採取childNodes[1]
,但它是一個有點脆弱......尤其是它會打破XML解析器,輪流CDATA段成文本,在那裏你會得到包含foo
,所有的單個文本的孩子空白。可能更好地採取<data>
元素的textContent
(當然除IE回退到innerText
外)。
嘗試.contents()返回整個事情(包括CDATA) - http://api.jquery.com/contents/
我們可以看到有問題的XML? – 2009-11-15 00:36:29
毫無疑問,沒有背景,沒有任何東西。 – 2009-11-15 05:53:27