2012-06-09 20 views
8

Sto provando a stampare xml su una pagina html.Impossibile evidenziare la sintassi xml con highlight.js

Esempio:

<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> 

Mi piacerebbe usare highlight.js per evidenziare il codice in una pagina ma c'è un conflitto con XML e HTML.

Ho avuto successo solo con qualche codice php utilizzando <pre><code class="php"></code></pre>, non ho provato con altre lingue. L'unico modo che ho trovato per visualizzare il codice xml è in una textarea, ma preferirei mostrare l'xml con qualche evidenziazione della sintassi dolce.

Ho creato un jsfiddle to illustrate the problem.

Spero che tu possa aiutare.

risposta

23

Si consiglia di evitare parentesi angolari con &lt; e &gt; quando si desidera visualizzarle letteralmente. Altrimenti hai un markup effettivo all'interno dell'elemento <code> che i browser cercano di interpretare. Questo non ha nulla a che fare con JavaScript applicato ad esso.

+2

Grazie, ha funzionato come un fascino, non mi rendevo conto che fosse così semplice. – GabLeRoux

+1

Qual è il punto, non sarebbe essere più intelligente se la libreria stessa prendere il codice HTML e sostituire i caratteri in sé qualcosa come $ html = $ ('codice pre') innerHtml();... $ parsedHTML = $ html.replace ("<", "<"); $ parsedHTML = $ html.replace (">", ">");. e poi funziona è magia e lo stile della st fuori da quel penso che sia pigro non –

+1

il punto è quello di consentire agli utenti o altri strumenti utilizzare effettivamente. markup nel codice Collegamenti, linee evidenziate in background, cose del genere – isagalaev

4

Per quel che vale, Google Prettify fa blocchi di rendering XML correttamente (senza dover codificare loro come &lt;.

+1

Né Evidenziazione o Google Prettify sono riusciti a mostrare

alkdjf

come previsto per me. –

+0

Google Prettyify no. – mkkhedawat

Problemi correlati