read node documentelement create crear attribute javascript xml

node - javascript xml response



cómo mostrar xml en javascript? (7)

Como dice la pregunta, simplemente se me escapó la memoria de cómo mostrar xml en javascript, quiero mostrar un xml fuente dentro de un div en una página, que se encuentra junto al resultado procesado del xml en otro div.

No puedo recordar si hubo un equivalente al escape de JavaScript para convertir entidades en el cliente

Nota : los archivos xml se sirven tal como están del servidor, por lo que necesito una solución del lado del cliente

Nota : el problema principal es que XML no se procesa correctamente en la mayoría de los navegadores, todos los corchetes y atributos desaparecen, dejándote con texto que no se ve como xml


Aquí hay una función para ti:

<script type="text/javascript"> <!-- function xml_to_string(xml_node) { if (xml_node.xml) return xml_node.xml; else if (XMLSerializer) { var xml_serializer = new XMLSerializer(); return xml_serializer.serializeToString(xml_node); } else { alert("ERROR: Extremely old browser"); return ""; } } // display in alert box alert(xml_to_string(my_xml)); // display in an XHTML element document.getElementById("my-element").innerHTML = xml_to_string(my_xml); --> </script>


Cuando no quiere usar un framework completo de JavaScript solo para esto ...

function insertLiteral(literalString, targetElement) { var textNode = document.createTextNode(literalString); targetElement.appendChild(textNode) return textNode; } // test it (for the example, I assume #targetDiv is there but empty) var xmlString = "<this><is_some><xml with=''attributes'' /></is_some></this>"; var targetElement = document.getElementById("targetDiv"); var xmlTextNode = insertLiteral(xmlString, targetElement);

#targetDiv puede #targetDiv con CSS:

#targetDiv { font-family: fixed; white-space: pre; }


El problema es que debe escapar de los caracteres que el analizador HTML interpretará como marcado: <,>, &, y en algunos casos "y"

Core JavaScript no proporciona esto para usted, pero muchas de las bibliotecas de complementos sí lo ofrecen.

Por ejemplo, Prototype tiene: http://www.prototypejs.org/api/string/escapeHTML


Obtenga su XML usando Ajax y simplemente coloque el resultado en un área de textarea . Dale un estilo al cuadro de texto de la manera que quieras.


Una técnica sería usar dos elementos de iframe con el atributo src establecido en el archivo xml correspondiente disponible desde el servidor (suponiendo que esté expuesto a través de un directorio virtual):

<iframe src="/myapp/Document1.xml"><iframe src="/myapp/Document2.xml">

Alternativamente, podría utilizar una solicitud de tipo AJAX para recuperar los documentos xml y luego incrustarlos en el documento HTML de forma dinámica utilizando algo como:

getElementById("myDiv").innerText = ajax.response;


Si desea que el navegador muestre su XML como XML , debe estar en su propio documento, como un iframe o un frame . DIV no hará el trabajo!

Además, en el encabezado HTTP de la solicitud que sirve el iframe debe enviar Content-Type: text/xml , para que el navegador pueda entender que este contenido es un XML .

Pero, si realmente necesita verlo en un DIV, tendrá que crear una función de representación XML XML2HTML . Puede usar la etiqueta HTML PRE para eso, si su cadena XML ya está formateada (saltos de línea y pestañas). En ese caso, deberá reemplazar < to &gt; en la cadena XML

Conclusión: The browser no puede representar XML y HTML en el mismo documento. Si lo necesita, solo tiene que solucionarlo.


Esta es la forma más fácil que encontré para mostrar XML como texto en la misma página para copiar y pegar:

var xml = document.getElementById(''svg_element'').innerHTML; document.getElementById(''svg_pre'').innerText = xml;