我有一个像这样的XML代码:
<description><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></description>
我知道这是西班牙语,但只要看看html代码有一些"div ","ul"(显然"li"也是)在XML的中间
嗯…当我在上面创建一个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,我谷歌它,但所有的解决方案给我如何创建HTML与Xquery,而不是强迫浏览器解析HTML。
如果你有XQuery 3.0,那么你可以使用新的parse-xml()
函数,像这样:
let $doc :=
<description><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></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>