-4

<![CDATA[test]]> 空白が表示されます。

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

3 に答える 3

5

解析中の XML がなければ確実なことは言えませんが、childNodes[0]( firstChild) から「空白を取得」する通常の理由は、親の開始タグと探しているノードの間に空白の Text ノードがあるためです。

<data>
    <![CDATA[ foo ]]>
</data>

CDATA セクションを保持する XML パーサーでは、data要素に 3 つの子が与えられます。改行といくつかのスペースを含む Text ノード。CDATASection ノード。改行を含む別の Text ノード。

だからあなた取ることができますがchildNodes[1]、それは少し壊れやすいです...特に、CDATAセクションをテキストに変換するXMLパーサーの場合foo、すべての空白を含む単一のText子を取得します。おそらくtextContent、要素の を取得する方が良いでしょう (もちろん、IE の<data>フォールバックを除く)。innerText

于 2009-11-15T01:53:56.960 に答える
-1

.contents() を試して全体 (CDATA を含む) を返す - http://api.jquery.com/contents/

于 2011-11-18T17:18:45.503 に答える