читать CDA в XML из JavaScript - PullRequest
       21

читать CDA в XML из JavaScript

0 голосов
/ 15 ноября 2009

<! [CDATA [тест]]> Я получаю заготовки.

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

Ответы [ 2 ]

5 голосов
/ 15 ноября 2009

Хотя мы не можем сказать наверняка без анализируемого XML, обычная причина «получения пробелов» из childNodes[0] (firstChild) заключается в том, что между начальным тегом родителя и начальным тегом есть пробельный узел Text. узел, который вы ищете:

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

В синтаксическом анализаторе XML, который сохраняет разделы CDATA, у элемента data будут три дочерних элемента: узел Text, содержащий новую строку и несколько пробелов; узел CDATASection; и еще один текстовый узел с новой строкой.

Таким образом, вы могли бы взять childNodes[1], но это немного хрупко ... в частности, оно сломалось бы для парсера XML, который превращает разделы CDATA в текст, где у вас будет один дочерний текст содержащий foo и все пробелы. Вероятно, лучше взять textContent элемента <data> (за исключением, конечно, с отступом до innerText для IE).

0 голосов
/ 18 ноября 2011

Попробуйте .contents (), чтобы вернуть все (включая CDATA) - http://api.jquery.com/contents/

...