我有一个XML文件:如何在XSL中为每个节点选择具有相同名称的节点?
<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>
我需要的是为-每过的所有节点,其中NAME_EN
和COLOR/DESCRIPTION_EN
其中name一样。
我知道这样的for-each:
<xsl:for-each select="PRODUCTS/PRODUCT[NAME_EN='jacket']">
但它不会叉我。 有什么办法可以做到这一点?
我不明白你的 '其中' 条款。你想要NAME_EN == COLOR/DESCRIPTION_EN的节点吗? – Efrain 2013-04-11 10:04:10
不,一个节点集NAME_EN ==夹克和COLOR/DESCRIPTION_EN ==蓝色,下一个NAME_EN ==夹克和COLOR/DESCRIPTION_EN ==白色,下一个是NAME_EN == shoes和COLOR/DESCRIPTION_EN == green – 2013-04-11 10:06:32
嗯。查看,我认为这对你有用。 –
Efrain
2013-04-11 10:16:05