仕事でプロジェクトに eXist を使用していますが、解決策が見つからないように見える問題に遭遇しました。
データベースに既に存在する既存のドキュメントを更新する xquery スクリプトがあります。更新が必要なデータの一部には、HTML、特にタグが含まれ<p>ています。</p>eXist/XQuery に HTML のエスケープを停止させることができません。元の形で保存する必要があります。これが私がやっていることの非常に単純なバージョンです:
<pre>
declare variable $raw-content := request:get-parameter('content', '')
declare variable $content := local:clean($raw-content)
</pre>
local:clean次の機能です。
<pre>
declare function local:clean($text) {
let $text := util:parse($text)
return $text
};
</pre>
コードの後半で、特定の XML 要素を更新します。
<pre>
{update replace $n/sports-content/article/nitf/body/body.content with <body.content>{$content}</body.content>}
</pre>
これで、1 セットのタグ (つまり ) でラップされたデータのみを渡すと、これは完璧に機能します<p>foo</p>。すると<p>foo</p><p>bar</p>、 にヌル値が配置され$textます。
なぜこれが機能しないのかを理解しようとして、1日半頭を机にぶつけていました。この問題を解決するための助けをいただければ幸いです。