可能的重复:
Xquery 中的标记
让字符串 a =“ http://ontheland.com/letus/tag/present?page=20&type=0 ”,需要在我想将“20”作为整数的地方标记这个字符串。主要问题是如何标记“&”。我一直在尝试使用"&",但没有用。你能帮助解决这个确切的问题吗?
可能的重复:
Xquery 中的标记
让字符串 a =“ http://ontheland.com/letus/tag/present?page=20&type=0 ”,需要在我想将“20”作为整数的地方标记这个字符串。主要问题是如何标记“&”。我一直在尝试使用"&",但没有用。你能帮助解决这个确切的问题吗?
你需要使用 & 作为 & 的实体:
let $a := <a><![CDATA[http://ontheland.com/letus/tag/present?page=20&type=0]]></a>
return xs:int(tokenize(tokenize($a,'&')[1],'=')[last()])
You can try this example live at http://www.zorba-xquery.com/html/demo#H8dHNTZwa2AnbIWhKEfMQ9HKT84=
除非该字符串是 CDATA,否则您的 XML 格式不会正确,并且您的 xquery 可能无法正常工作。如果是 CDATA,您应该能够通过使用&
.
例子:
XML
<a><![CDATA[http://ontheland.com/letus/tag/present?page=20&type=0]]></a>
XPath(用于 XQuery)
xs:int(tokenize(tokenize(/a,'&')[1],'=')[last()])
结果
20
使用 Saxon HE 测试