xmlファイルについて考えてみましょう。
<warehouse>
- may be some tag on upper level of dep present, may be not
<dep no ="2">
<item>
<itemName> Item 1 </itemName>
<supplier> Supp1 </supplier>
<supplier> Supp2 </supplier>
</item>
</dep>
<dep no ="1">
<item>
<itemName> Item 2 </itemName>
<supplier> Supp1 </supplier>
<supplier> Supp3 </supplier>
</item>
</dep>
.......
</warehouse>
注:depタグの上にいくつかのタグがあるか、欠落している可能性があります。
サプライヤーのリストをリストに表示する必要があります。サプライヤーが作成するアイテム名と、各アイテムの前に部門名を表示します。
Supp2
Item1, 2
Supp1
Item1, 2
Item2, 1
これは私のコードです:
<ul>
{
for $sup in distinct-values(doc("warehouse.xml")//supplier)
for $item in doc("warehouse.xml")//item[supplier = $sup]
return <li>{data($sup)} <ul> {
let $n:= $item/itemName
let $y:= doc("warehouse.xml")//dep[//itemName=$n]/@no
for $n1 in $n return <li>{data($n1), data($y)} </li>} </ul> </li>
}
</ul>
私は2つの問題に直面しています。1つは、yが1から始まるすべての部門番号を表示することです。もう1つは、1つのサプライヤがあり、2つのアイテムを生産するのではなく
Supp1
Item1, 2
Item2, 3
私は得る
Supp1
Item1, 1,2, ...
Supp1
Item2, 1,2, ...
何が悪いのか提案していただけますか?心から感謝しています。