【发布时间】:2015-08-06 00:46:28
【问题描述】:
我想从 xml 中获取数据使用 Xquery with started with function。
数据.xml
<data><employee id=\"1\"><name value=\"vA-12\">A</name> <title id=\"2\">Manager</title></employee>
<employee id=\"2\"><name value=\"vC-12\">C</name><title id=\"2\">Manager</title></employee>
<employee id=\"2\"><name value=\"vB-12\">B</name><title id=\"2\">Manager</title></employee>
</data>
现在我想获取具有 employee@id=title@id 和 name@value 以“vC”开头的名称。
我已经为此编写了这个 xquery。请参见下文,但出现错误-
for $x in /data/employee where $x/@id=$x/title/@id and [fn:starts-with($x/name/@value,vC)] return data($x/name)
这是错误-
Error on line 1 column 55
XPST0003 XQuery syntax error near #.../title/@id and [fn:starts-with#:
Unexpected token "[" in path expression
net.sf.saxon.s9api.SaxonApiException: Unexpected token "[" in path expression
at net.sf.saxon.s9api.XQueryCompiler.compile(XQueryCompiler.java:544)
at Xml.process(Xml.java:46)
at Xml.main(Xml.java:30)
Caused by: net.sf.saxon.trans.XPathException: Unexpected token "[" in path expression
at net.sf.saxon.query.XQueryParser.grumble(XQueryParser.java:479)
at net.sf.saxon.expr.parser.XPathParser.grumble(XPathParser.java:221)
【问题讨论】:
-
@Andrew 添加错误请见上文
-
您的 xml 格式是否不正确(属性值中的转义)?
-
@DimitreNovaatchev 非常感谢你