“&”实体引用导致的XQuery Invalid entity reference错误

XQuery Invalid entity reference error caused by "&" entity reference

我正在尝试 运行 这一行 xdmp:unquote(concat('<info>', string( $paragraph) , '</info>')) 但出现以下错误:xdmp:unquote("<info>LEARNING &amp; MEMORY</info>") -- Invalid entity reference " " at line 1。似乎是这个实体引用 &amp; 导致了问题。我尝试使用 replace 函数将其删除,但它仍然存在。我该怎么办?

我假设你有这样的东西-

let $paragraph := <p>LEARNING &amp; MEMORY</p>
return
xdmp:unquote(fn:concat('<info>', fn:string($paragraph),'</info>'))

你想要的结果是 XML 看起来像-

<info>LEARNING & MEMORY</info>

& 符号绝对是问题所在,解决方法是使用 "repair-full" 选项。这个例子有效:

let $paragraph := <p>LEARNING &amp; MEMORY</p>
let $contents := xdmp:unquote($paragraph, "", "repair-full")
return
<info>{$contents}</info>