2012-06-09 15 views
8

Estoy tratando de imprimir xml en una página html.No se puede resaltar la sintaxis xml con highlight.js

Ejemplo:

<pre><code class="xml"> 
    <?xml version="1.0"?> 
    <response value="ok" xml:lang="en"> 
     <text>Ok</text> 
     <comment html_allowed="true"/> 
     <ns1:description><![CDATA[ 
     CDATA does <not> escape <tags like="this"></tags></not>. 
     ]]></ns1:description> 
     <a></a> <a/> 
    </response> 
</code></pre> 

Me gustaría utilizar highlight.js para resaltar código en una página pero no hay un conflicto con XML y HTML.

Solo tuve éxito con algunos códigos php usando <pre><code class="php"></code></pre>, no he intentado con otros idiomas. La única forma que encontré para mostrar el código xml es en un área de texto, pero preferiría mostrar el xml con algunos resaltados de sintaxis.

He hecho un jsfiddle to illustrate the problem.

Espero que pueda ayudar.

Respuesta

23

Debe escapar de los corchetes angulares con &lt; y &gt; cuando desee mostrarlos literalmente. De lo contrario, tiene un marcado real dentro de su elemento <code> que los navegadores intentan interpretar. Esto no tiene nada que ver con el JavaScript que se le aplica.

+2

Gracias, funcionó como un encanto, no me di cuenta que era así de simple. – GabLeRoux

+1

Cuál es el punto, ¿no ser más inteligente si la biblioteca en sí toma el html y reemplaza los caracteres en sí. Algo así como. $ html = $ ('pre code'). innerHtml(); $ analizadoHTML = $ html.replace ("<", "<"); $ parsedHTML = $ html.replace (">", ">"), y luego funciona es mágico y estilizado. Creo que es vago no hacerlo. –

+1

El punto es permitir que los usuarios u otras herramientas realmente utilicen marcado en el código. Enlaces, líneas resaltadas en el fondo, cosas así. – isagalaev

4

Por lo que vale la pena, Google Prettify deja sin contenido bloques XML correctamente (sin tener que codificarlos como &lt;.

+1

Ni Highlight ni Google Prettify lograron mostrar

alkdjf

como esperaba yo. –

+0

Google No es así. – mkkhedawat

Cuestiones relacionadas