私はxmlファイルを持っています:
<PRODUCTS>
<PRODUCT>
<NAME_EN>jacket</NAME_EN>
<SKU>1</SKU>
<SIZE>
<CODE>01 </CODE>
<DESCRIPTION>34</DESCRIPTION>
</SIZE>
<COLOR>
<DESCRIPTION_EN>black</DESCRIPTION_EN>
</COLOR>
</PRODUCT>
<PRODUCT>
<NAME_EN>jacket</NAME_EN>
<SKU>2</SKU>
<SIZE>
<CODE>02</CODE>
<DESCRIPTION>35</DESCRIPTION>
</SIZE>
<COLOR>
<DESCRIPTION_EN>black</DESCRIPTION_EN>
</COLOR>
</PRODUCT>
<PRODUCT>
<NAME_EN>shoes</NAME_EN>
<SKU>3</SKU>
<SIZE>
<CODE>01</CODE>
<DESCRIPTION>34</DESCRIPTION>
</SIZE>
<COLOR>
<DESCRIPTION_EN>black</DESCRIPTION_EN>
</COLOR>
</PRODUCT>
</PRODUCTS>
このような結果を得るために xsl 変換を使用したい:
<catalog>
<product>
<variants>
<variant>
<sku>1</sku>
<options>
<option>
<code>size</code>
<value>34</value>
</option>
</options>
</variant>
<variant>
<sku>2</sku>
<options>
<option>
<code>size</code>
<value>35</value>
</option>
</options>
</variant>
</variants>
</product>
<product>
<variants>
<variant>
<sku>3</sku>
<options>
<option>
<code>size</code>
<value>34</value>
</option>
</options>
</variant>
</variants>
</product>
</catalog>
私が必要とするのは、同じ名前のすべてのノードに対して for-each を実行することNAME_EN
ですCOLOR/DESCRIPTION_EN
。
私はそのようなfor-eachについて知っています:
<xsl:for-each select="PRODUCTS/PRODUCT[NAME_EN='jacket']">
しかし、それは私のために分岐しません。これを達成する方法はありますか?