2012-10-03 27 views
12

¿Cómo podría uno incrustar XML en una página HTML?Incrustar XML en HTML

Estaba pensando en usar CDDATA sería el mejor enfoque, pero obtengo errores en el documento HTML cuando se carga la página.

<script><![CDATA[ ... ]]></script> 

Necesito incrustar un documento XML para recuperarlo más tarde con JavaScript. Necesito hacer esto, ya que cuando el usuario lo abre, es posible que no tengan acceso a Internet.

+0

CDATA se entiende para incrustar datos de caracteres en XML, no incrustar XML en HTML (HTML no tiene este tipo de delimitadores). – BoltClock

+0

Siempre que XML no contenga '' en ninguna parte, debería poder ponerlo dentro de las etiquetas de script (sin sección CDATA). Proporcione al script un tipo personalizado para que no se interprete como JavaScript. –

+0

Esto podría ser útil: http://stackoverflow.com/questions/7816500/embed-xml-in-html-firefox-compatible – MikeB

Respuesta

25

Mientras el XML no contenga </script> en cualquier lugar, puede colocarlo dentro de las etiquetas de script con un atributo personalizado type (y sin sección CDATA). Asigne a la etiqueta del script un atributo id para que pueda recuperar el contenido.

<script id="myxml" type="text/xmldata"> 
    <x> 
     <y z="foo"> 

     </y> 
    </x> 
</script>​ 

... 

<script> alert(document.getElementById('myxml').innerHTML);​ </script> 

http://jsfiddle.net/hJuPs/

+0

configuración tipo = "texto/xml" era el truco que me faltaba! ¡Gracias! – amcdnl

+0

@AustinMcDaniel tenga en cuenta que no tiene que ser "text/xml" ... simplemente tiene que * no * ser "text/javascript" –

+2

Y también tenga en cuenta que el tipo es "text/javascript" de forma predeterminada en HTML5 si omitido –

1

¿Qué tal:

<script> 
    var xml = '<element> \ 
       <childElement attr="value" /> \ 
       </element>'; 
</script> 

Eso le permitiría integrar fácilmente el XML para su posterior recuperación en javascript.

-1

De acuerdo con el tutorial aquí, se puede utilizar la etiqueta 'XML' para incrustar datos XML en un documento HTML. Sin embargo, esto muestra implícitamente los datos XML en el navegador.

http://www.expertrating.com/courseware/XMLCourse/XML-Embedding-HTML-8.asp

+0

De acuerdo con el enlace aquí, ha quedado obsoleto. Sin embargo, nunca antes había visto este sitio ni había escuchado sobre la etiqueta antes de ver esta pregunta sobre la pila. http://www.html-5.com/changes/deprecated/xml-tag.html – jwp

Cuestiones relacionadas