Esto obtendrá el valor de raíz/texto adecuado. El texto puede colocarse en todas partes en el nodo raíz.
<script type="text/javascript"> $().ready(function() { var xml = $('#xml').find('root').contents().each(function(i){ if (this.nodeName=="#text" && this.nodeType=="3" && this.nodeValue.length>2) alert(this.nodeValue); }); });
</script>
para:
<div id="xml"><root><item1>text1</item1><item2>text2</item2>more text here</root></div>
Nota: "en línea" xml no funciona en Internet Explorer, pero si se reemplaza la raíz y itemX en el ejemplo con nombres de nodo HTML válido, que funcionará también.
Explicación: DOM trata los nodos vacíos y de texto como elementos. Si se depura el .Cada anterior(), verá lo siguiente:
alert(this.nodeName + '|' + this.nodeType + "|" + this.nodeValue);
#text|3| , ITEM1|1|null , #text|3| , ITEM2|1|null , #text|3| more text here
(En este momento, el formato no está funcionando con un teclado húngaro, todavía)
Uso .html() en lugar de .text() y obtendrás los contenidos brutos. –
excepto .html() no está disponible para xml – safoo