<![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