<! [CDATA [test]] > Je reçois des espaces.lire cdata en XML à partir de javascript
var dataNode=Ext.DomQuery.selectNode('data',xml); console.log(dataNode.childNodes[0].nodeValue); console.log(dataNode.nodeValue);
<! [CDATA [test]] > Je reçois des espaces.lire cdata en XML à partir de javascript
var dataNode=Ext.DomQuery.selectNode('data',xml); console.log(dataNode.childNodes[0].nodeValue); console.log(dataNode.nodeValue);
Alors que nous ne pouvons pas dire avec certitude sans XML qui est en cours d'analyse, la raison habituelle pour « obtenir des blancs » de childNodes[0]
(firstChild
) est qu'il ya un nœud texte contenant des espaces entre balise de début du parent et le nœud que vous recherchez:
<data>
<![CDATA[ foo ]]>
</data>
Sur un analyseur XML qui conserve des sections CDATA, qui va donner à l'élément data
trois enfants: un nœud de texte contenant un saut de ligne et des espaces; le noeud CDATASection; et un autre noeud Texte avec un saut de ligne.
Vous pouvez prendre childNodes[1]
, mais il est un peu fragile ... en particulier, il se briserait d'un analyseur XML qui transforme les sections CDATA en texte, où vous obtiendriez un seul enfant de texte contenant foo
et tous les espace blanc. Probablement préférable de prendre le textContent
de l'élément <data>
(sauf bien sûr avec le repli à innerText
pour IE).
.contents Try() pour renvoyer le tout (y compris CDATA) - http://api.jquery.com/contents/
Peut-on voir le XML en question? –
Il n'y a pas de question, pas de contexte, pas de rien. –