filt
次のようなxmlを保持する という名前の変数があります。
<filters>
<ISP_WebItem FILTER="Farve" FILTERNAME="Transparent" UNITCODE="" />
<ISP_WebItem FILTER="Antal" FILTERNAME="10" UNITCODE="mapper" />
<ISP_WebItem FILTER="Indpakning" FILTERNAME="Æske" UNITCODE="" />
<ISP_WebItem FILTER="Materiale" FILTERNAME="PP" UNITCODE="" />
<ISP_WebItem FILTER="Bredde" FILTERNAME="35.6" UNITCODE="cm" />
<ISP_WebItem FILTER="Farve" FILTERNAME="blue" UNITCODE="" />
<ISP_WebItem FILTER="Dybde" FILTERNAME="5" UNITCODE="mm" />
<ISP_WebItem FILTER="Farve" FILTERNAME="red" UNITCODE="" />
</filters>
これらの要素を「FILTER」属性でグループ化したいと考えています。つまり、このような出力 xml が必要です (xml 要素はフィルター属性によって再配置されることに注意してください。つまり、farve として FILTER を持つすべての要素が隣接する位置にあることに注意してください)
<filters>
<ISP_WebItem FILTER="Farve" FILTERNAME="Transparent" UNITCODE="" />
<ISP_WebItem FILTER="Farve" FILTERNAME="blue" UNITCODE="" />
<ISP_WebItem FILTER="Farve" FILTERNAME="red" UNITCODE="" />
<ISP_WebItem FILTER="Antal" FILTERNAME="10" UNITCODE="mapper" />
<ISP_WebItem FILTER="Indpakning" FILTERNAME="Æske" UNITCODE="" />
<ISP_WebItem FILTER="Materiale" FILTERNAME="PP" UNITCODE="" />
<ISP_WebItem FILTER="Bredde" FILTERNAME="35.6" UNITCODE="cm" />
<ISP_WebItem FILTER="Dybde" FILTERNAME="5" UNITCODE="mm" />
</filters>
私はこのようなことを試しました:
<xsl:variable name="grouped_filt" select="$filt//ISP_WebItem[@FILTER = preceding-sibling::*[1]/@FILTER ]"></xsl:variable>
しかし役に立たない。私はこれで何か間違ったことを見つけることができません。誰でも助けることができますか?