2012-12-29 48 views
3

我有一個XML代碼看起來像這樣:的Xquery節點返回HTML代碼的瀏覽器不讀它

<description>&lt;div style=&quot;text-align: justify;&quot;&gt;El Casino de Asturias alberga una sala polivalente para cualquier tipo de acto desde conferencias, convenciones o reuniones de trabajo, hasta banquetes y celebraciones. Dispone de programaci&#243;n mensual de conciertos y actividades y de una variada carta de c&#243;cteles.&lt;br/&gt;&lt;br/&gt;&lt;h4&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Descuento del 30% con la tarjeta tur&#237;stica Gij&#243;n Card (S&#243;lo en la entrada al recinto, no incluye espect&#225;culos)&lt;br/&gt;&lt;/span&gt;&lt;/h4&gt;&lt;/div&gt;</description> 

我知道這是在西班牙,但只要看一下HTML代碼有一些「申報單」, 「UL」在XML中間

以及(obiusly「禮」太)......當我在其上創建的XQuery查詢我把這個描述在這樣的表中的行:

<table id="pubs" border="1"> 
     { 
     for $dir in doc("/db/Ocio/pubs.xml")//dir 
     order by $dir/name 
     return 
      <tr> 
      <td><p>{$dir/description/text()}</p></td> 
      </tr> 
     } 
</table> 

問題是,當我顯示這個在網絡上的文本是完全的XML文本,我的瀏覽器不解析HTML代碼,並顯示像"<ul><li>somethins...</li></ul>"和我不知道如何強制瀏覽器解析HTML,我GOOGLE了它,但所有的解決方案給我如何使用Xquery創建HTML,而不是強制瀏覽器解析HTML。

+0

我以前沒有用過xQuery,所以我沒有一個正確的答案,但我認爲你必須在字符串中避開html實體,這個問題可能有助於http:// stack overflow.com/questions/2611480/how-to-unencode-escaped-xml-with-xquery – Roimer

回答

4

如果你的XQuery 3.0,那麼你可以使用新的parse-xml()功能這樣

let $doc := 
    <description>&lt;div style=&quot;text-align: justify;&quot;&gt;El Casino de Asturias alberga una sala polivalente para cualquier tipo de acto desde conferencias, convenciones o reuniones de trabajo, hasta banquetes y celebraciones. Dispone de programaci&#243;n mensual de conciertos y actividades y de una variada carta de c&#243;cteles.&lt;br/&gt;&lt;br/&gt;&lt;h4&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Descuento del 30% con la tarjeta tur&#237;stica Gij&#243;n Card (S&#243;lo en la entrada al recinto, no incluye espect&#225;culos)&lt;br/&gt;&lt;/span&gt;&lt;/h4&gt;&lt;/div&gt;</description> 

    return 
     <table id="pubs" border="1"> 
      <tr> 
      <td><p>{$doc/text()/parse-xml(.)}</p></td> 
      </tr> 
</table> 

當執行這個XQuery的,正確的結果(標記 - 而不是文本)產生

<table id="pubs" border="1"> 
    <tr> 
    <td> 
     <p> 
     <div style="text-align: justify;">El Casino de Asturias alberga una sala polivalente para cualquier tipo de acto desde conferencias, convenciones o reuniones de trabajo, hasta banquetes y celebraciones. Dispone de programación mensual de conciertos y actividades y de una variada carta de cócteles.<br/> 
      <br/> 
      <h4> 
      <span style="font-weight: bold;">Descuento del 30% con la tarjeta turística Gijón Card (Sólo en la entrada al recinto, no incluye espectáculos)<br/> 
      </span> 
      </h4> 
     </div> 
     </p> 
    </td> 
    </tr> 
</table> 
+0

非常感謝你,我現在就試試看,再次感謝你:D – Santanor

+0

@Santanor,不客氣。 –

+0

我很抱歉再次問,但是當我使用這個函數時,webapp返回給我這個錯誤:函數parse-xml()未在模塊名稱空間中定義:http://www.w3.org/2005/xpath-functions我google了一下,但我找不到具有該功能的命名空間,我把Zorba的命名空間,但返回404的網址,你知道解決方案? Tnak you very much – Santanor

相關問題