2012-06-09 50 views
8

我試圖在html頁面上打印xml。無法使用highlight.js突出顯示xml語法

例:

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

我想使用highlight.js突出顯示網頁上的代碼,但有一個與XML和HTML的衝突。

我只使用<pre><code class="php"></code></pre>的某些php代碼取得了成功,未嘗試使用其他語言。我發現顯示xml代碼的唯一方法是在textarea中,但我更願意用一些甜美的語法突出顯示xml。

我做了一個jsfiddle to illustrate the problem

希望你能幫上忙。

回答

23

如果您想直接顯示它們,您應該使用&lt;&gt;轉義尖括號。否則,您的瀏覽器嘗試解釋您的<code>元素中有實際標記。這與應用於它的任何JavaScript無關。

+2

謝謝,工作就像一個魅力,我不知道它是如此簡單。 – GabLeRoux

+1

有什麼意義,也不會如果庫本身帶有html並替換了字符本身,那麼更聰明一些,就像。html = $('pre code')。innerHtml(); $ parsedHTML = $ html.replace(「<」,「<」); $ parsedHTML = $ html.replace(「>」,「>」);然後它的魔力和風格st出於這一點,我認爲這不是懶惰 –

+1

關鍵是讓用戶或其他工具實際使用代碼中的標記鏈接,背景突出顯示的行,類似的東西。 – isagalaev

4

對於它的價值,Google Prettify無法正確顯示XML塊(而無需將它們編碼爲&lt;

+1

無論是突出顯示還是Google Prettify都沒有像我預期的那樣顯示

alkdjf

。 –

+0

Google Prettyify沒有。 – mkkhedawat