fn:substring-before的Xquery错误

时间:2011-11-02 05:28:37

标签: xpath xquery

    <url>{substring-before(data($y/link[1]/@href),'&')}</url>

尝试运行时遇到的错误是

    No closing ';' found for entity or character reference

有人知道是什么导致了这个错误吗?

2 个答案:

答案 0 :(得分:4)

在XQuery中,字符串文字(以及某些其他上下文)中的&符号需要作为&amp;进行转义,就像在XML中一样。

答案 1 :(得分:1)

迈克尔凯是正确的。 &#34;&amp;&#34;在XML中本身是非法的。它始终伴随着一个实体。例子包括&amp; &LT; &gt;等 如果您认为您的搜索无法正常工作,因为您正在搜索&#34;&amp;&#34;而不是&#34;&amp;&#34;,这不是正确的思考。作为一个人,试着在你的脑海中翻译出来&#34;&amp;&#34;真的很像&#34;&amp;&#34;到XML解析器。这样做会有效:

<url>{substring-before(data($y/link[1]/@href),'&amp')}</url>