我是 Xquery 的新手,我想将给定的 xml 更改为另一种 xml 格式。
给定 XML:
<?xml version="1.0" encoding="UTF-8"?>
<Store>
<consumer id="H01">
<name>John Doe</name>
<items>
<item type = "Torch">
<price>$3</price>
</item>
<item type = "Gas">
<price>$4</price>
</item>
</items>
</consumer >
<consumer id="H05">
<name>Jane Doe</name>
<items>
<item type = "Cell">
<price>$8</price>
</item>
<item type = "Shirt">
<price>$12</price>
</item>
</items>
</consumer>
所需的 XML 格式:
<Store>
<user>
<number><id>H01</id><name>John Doe</name></number>
<number><id>H05</id><name>Jane Doe</name></number>
</user>
<inventory>
<number><type>Torch</type><price>$3</price></number>
<number><type>Gas</type><price>$4</price></number>
<number><type>Cell</type><price>$8</price></number>
<number><type>Shirt</type><price>$12</price></number>
</inventory>
</Store>
我制作的 Xquery:
for $customer in distinct-values(doc("../xml/store.xml")/store/consumer/@id)
let $name := doc("../xml/store.xml")/store/consumer[@id=$customer]/name
for $object in distinct- values(doc("../xml/store.xml")/store/consumer[@id=$customer]/items/item/@type)
return
<store>
<user>
<number>
<id>{$customer}</id>
{$name}
</number>
</user>
<inventory>
<number>
<type>{$object}</type>
</number>
</inventory>
</store>
我到底哪里错了?有没有办法我们可以将属性作为新的节点元素。