これは私の2番目の投稿であり、私があなたを助けてくれることを願っています。私は同様の疑問点を見つけましたが、わずかに異なっていたか、解決策を私の問題に移すことができませんでした。私は<groupedItem>
の1つのインスタンスを生成する別個のグループ識別値に基づいてXQuery:同じグループ化基準を持つ要素に基づいて要素と計算をグループ化する
<?xml version="1.0" encoding="UTF-8"?>
<goods>
<item>
<groupIdentification>001</groupIdentification>
<measures>
<measure type="piece">
<value>100</value>
<unit>PK</unit>
</measure>
<measure type="weight">
<value>100</value>
<unit>KG</unit>
</measure>
</measures>
</item>
<item>
<groupIdentification>002</groupIdentification>
<measures>
<measure type="piece">
<value>200</value>
<unit>PK</unit>
</measure>
<measure type="weight">
<value>200</value>
<unit>KG</unit>
</measure>
</measures>
</item>
<item>
<groupIdentification>001</groupIdentification>
<measures>
<measure type="piece">
<value>300</value>
<unit>PK</unit>
</measure>
<measure type="weight">
<value>300</value>
<unit>KG</unit>
</measure>
</measures>
</item>
</goods>
:
Iは、以下のソースを持っています。 <groupedItem>
の中で<groupIdentification>
を参照したいが、同じ値のIDを共有する別の値または他の値を合計したい。私はそれゆえ達成したい
ターゲット構造は次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<goods>
<groupedItem>
<groupIdentification>001</groupIdentification>
<measures>
<measure type="piece">
<value>400</value>
<unit>PK</unit>
</measure>
<measure type="weight">
<value>400</value>
<unit>KG</unit>
</measure>
</measures>
</groupedItem>
<groupedItem>
<groupIdentification>002</groupIdentification>
<measures>
<measure type="piece">
<value>200</value>
<unit>PK</unit>
</measure>
<measure type="weight">
<value>200</value>
<unit>KG</unit>
</measure>
</measures>
</groupedItem>
</goods>
私はこれを達成する方法を説明するために私を助けてください、何のメカニズムがあります。同じ「グループ化要素」を共有するものを合計するようクエリに指示するのはやや難しいです。
ありがとうございます。
EDIT
私は次のクエリを使用している場合は、私が唯一の2 groupedItems
を得るが、私は低いレベルで継続できません。
xquery version "3.0";
<goods>
{
for $item in goods/item
let $group := $item/groupIdentification
group by $group
return
<groupedItem>
{
for $groupIdentification in goods/item/groupIdentification
(: this is where I fail to get the connection :)
return
<groupIdentification>{ data($groupIdentification) }</groupIdentification>
}
(: no need for measure here yet, first need to solve the problem itself :)
</groupedItem>
}
</goods>
私が取得:
<?xml version="1.0" encoding="UTF-8"?>
<goods>
<groupedItem>
<groupIdentification>001</groupIdentification><groupIdentification>002</groupIdentification><groupIdentification>001</groupIdentification>
</groupedItem>
<groupedItem>
<groupIdentification>001</groupIdentification><groupIdentification>002</groupIdentification><groupIdentification>001</groupIdentification>
</groupedItem>
</goods>
XQueryはバージョン3.0/3.1になりました。これには 'group'節がありますので、これを試してみましたか? XQueryコードを表示してください。 –
'group by'です;); https://www.w3.org/TR/xquery-30/#id-group-by – joewiz
これまでの回答に感謝します。私のさらなる説明を見てください。グループ分けはより高いレベルで機能しますが、それに応じて下位レベルの処理を続ける方法はわかりません。 – PatrickSchenker