从javascript读取xml中的cdata

use*_*196 -3 xml cdata

<![CDATA [test]]>我得到了空白.

var dataNode=Ext.DomQuery.selectNode('data',xml);
console.log(dataNode.childNodes[0].nodeValue);
console.log(dataNode.nodeValue);

bob*_*nce 5

虽然我们不能确定没有正在解析的XML,但是从childNodes[0](firstChild)获取空白的通常原因是在父的start-tag和你正在寻找的节点之间有一个空白的Text节点:

<data>
    <![CDATA[ foo ]]>
</data>
Run Code Online (Sandbox Code Playgroud)

在保留CDATA部分的XML解析器上,它将为data元素提供三个子节点:一个包含换行符和一些空格的Text节点; CDATASection节点; 和另一个带换行符的Text节点.

所以你可以采取childNodes[1],但它有点脆弱...特别是它会打破一个XML解析器,将CDATA部分转换为文本,你将得到一个包含foo所有空格的Text子项.可能更好地采取textContent所述的<data>元件(当然除了回退到的innerText用于IE).