Xquery Node возвращает HTML-код, а браузер не читает его
У меня есть 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-код, есть некоторые "divs", "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.
1 ответ
Если у вас есть 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>