我得到了以下示例xml:
<meci>
<nodes>
<node id="x">
<mlfbs>
<region value="H">
<mlfblist>
<mlfb partno="1" masternode="false" />
<mlfb partno="2" masternode="false" />
</mlfblist>
</region>
</mlfbs>
</node>
</nodes>
</meci
我写了以下xQuery:
xquery version "1.0";
<ProductList>
{
for $a in /meci/nodes/node
return
<Product>
<id>{data($a/@id)}</id>
<mflb>{data($a/mlfbs/region/mlfblist/mlfb/@partno)}</mflb>
</Product>
}
</ProductList>
结果如
<ProductList>
<Product>
<id>x</id>
<mflb>1 2</mflb>
</Product>
</ProductList>
但我希望得到以下结果:
<ProductList>
<Product>
<id>x</id>
<mflb>1</mflb>
<mflb>2</mflb>
</Product>
</ProductList>
有谁能告诉我我做错了什么?任何帮助将不胜感激,我一直在寻找没有解决方案的时间:/。
干杯 斯特凡
答案 0 :(得分:1)
再使用一个for
获取mflb
列表:
<ProductList>
{
for $a in /meci/nodes/node
return
<Product>
<id>{data($a/@id)}</id>
{for $mlfb in data($a/mlfbs/region/mlfblist/mlfb/@partno)
return <mflb>{$mlfb}</mflb>}
</Product>
}
</ProductList>