XML:
<data>
<providers>
<provider num="v1">
<name>Smith</name>
<state>20</state>
<city>London</city>
</provider>
<provider num="v2">
<name>Jones</name>
<state>10</state>
<city>Paris</city>
</provider>
<provider num="v3">
<name>Adams</name>
<state>30</state>
<city>Athens</city>
</provider>
</providers>
</data>
X查询:
let $p := doc("providers.xml")/data/providers/provider
where $p/state > 15
return <cities>{concat($p/city/text(), ' , ')}</cities>
我希望输出是城市的名称,一个接一个地用逗号分隔,但我收到错误:需要项目,找到序列。
最佳答案
它正在提示 concat()
函数,其中第一个参数是字符串序列。它期望您要连接的每个项目都被指定为该函数的单独参数(它不会将序列扩展到参数)。
你应该使用 string-join()
相反,为每个城市生成一个逗号分隔的字符串:
<cities>{string-join($p/city/text(), ' , ')}</cities>
关于xml - XQuery:预期项目,发现序列错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73416505/