Как не закодировать оставленный XML xQuery

У меня есть переменная в xQuery типа xs:string со значением закодированного отрывка HTML (содержание твита Твиттера). Это похоже на это:

Заголовки сегодня • источники AP: < b> Obama</b> выбор для сообщения Справедливости уходит: Новости - Остальные страны - < href =" http://shar.es/mqMAG" > http://shar.es/mqMAG</a>;

Когда я пытаюсь выписать это в блоке HTML, мне нужна строка, чтобы быть незавершенным так, чтобы отрывок HTML был интерпретирован браузером. Вместо этого строка становится выписанной, как, и браузер представляет ее как просто текст (таким образом, Вы видите

{$entry/atom:content/text ()}

Как может я не кодировать завершенные символы, таким образом, это пишет <скорее tha <?

Я попытался сделать подобное замене это, но это всегда заменяет < с <!

fn:replace ($s, "<"; "<")

7
задан Dimitre Novatchev 10 April 2010 в 01:10
поделиться

3 ответа

Зависит от того, какой XQuery процессор вы используете ... Самый простой способ - использовать процессор с расширением, которое обрабатывает это для тебя. Например, с Saxon и следующим XML :

<a>&lt;c&gt;asdf&lt;/c&gt;</a>

Вы можете написать XQuery , который использует saxon: parse () функция, чтобы делать то, что вы хотите:

declare namespace saxon = "http://saxon.sf.net/";

<a>{
  saxon:parse(doc('test.xml')/a)
}</a>

Результат:

<a>
  <c>asdf</c>
</a>

Я думаю, что у большинства (?) процессоров XQuery есть расширение, которое сделает это за вас. Надеюсь, это поможет.

2
ответ дан 7 December 2019 в 05:20
поделиться

В MarkLogic вы можете использовать следующий запрос :

let $d := '<a>&lt;c&gt;asdf&lt;/c&gt;</a>' 

return xdmp:unquote ($d)
3
ответ дан 7 December 2019 в 05:20
поделиться

в eXist, используйте util: parse ():

util:parse(concat("<top>","&lt;c&gt;asdf&lt;/c&gt;",</top>")‌​)
3
ответ дан 7 December 2019 в 05:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: