使用字符串连接的XQuery,一个参数是字符串,另一个参数是数字
我想列出每年的订单总数使用字符串连接的XQuery,一个参数是字符串,另一个参数是数字,xquery,Xquery,我想列出每年的订单总数 <Samples> <Sample> <Year>2010</Year> <Order>20,000</Order> </Sample> <Sample> <Year>2011</Year> <Order>20,000</Order> <Order>35,000<
<Samples>
<Sample>
<Year>2010</Year>
<Order>20,000</Order>
</Sample>
<Sample>
<Year>2011</Year>
<Order>20,000</Order>
<Order>35,000</Order>
</Sample>
<Sample>
<Year>2012</Year>
<Order>20,000</Order>
<Order>23,000</Order>
<Order>40,000</Order>
</Sample>
</Samples>
由于
元素的数量本身会告诉我订单的总数,因此我在BaseX中尝试了以下内容-
for $x in doc("Sample")/Samples/Sample
return <li>{string-join ( ($x/Year, count($x/Order)) , " # ")}</li>
单据中的$x(“样本”)/Samples/Sample
return{string join($x/年,count($x/订单)),“#”}
但是我得到了一个错误,这很明显,因为我在
string join
函数中使用的是整数而不是字符串。或者有没有其他方法可以获得相同的输出?字符串联接
需要字符串,而不是计数
返回的数字。添加一个cast,它将运行
for $x in /Samples/Sample
return <li>{ string-join( ($x/Year, xs:string(count($x/Order))), " # ") }</li>
用于$x in/Samples/Sample
return{string join($x/年,xs:string(count($x/顺序)),“#”)}
我修复了另外两个错误:
- 为什么要查询年度的属性
?没有Y
- 您将要计算
标记,而不是
也许使用
concat
可以使代码更具可读性(只要您只使用两个参数)?非常感谢。我已经纠正了错误。再次非常感谢:)
for $x in /Samples/Sample
return <li>{ string-join( ($x/Year, xs:string(count($x/Order))), " # ") }</li>