我正在尝试学习XSLT的基础知识,但我坚持使用特定的用例。我想要实现的是将一个xml文件转换为另一个xml(我正在使用XSLT 2.0),但条件是输出xml中的元素分组由输入xml中的一个特定元素的值决定。
我将尝试通过一个简单的例子来举例说明我的问题。
让我们说这是一个输入xml:
<products>
<shoes>
<shoe>
<name>Ecco City</name>
<category>Urban</category>
</shoe>
<shoe>
<name>Timberland Forest</name>
<category>Wildlife</category>
</shoe>
<shoe>
<name>Asics Gel-Kayano</name>
<category>Running</category>
</shoe>
</shoes>
<clothes>
<shorts>
<name>North Face</name>
<category>Wildlife</category>
</shorts>
<shorts>
<name>Adidas Running Shorts</name>
<category>Running</category>
</shorts>
</clothes>
根据我想要的类别元素的值,对于每个产品,列出类似的产品,即输入xml中具有相同类别的其他产品,如下所示:
<output>
<forSale>
<item>Asics Gel-Kayano</item>
<similarItem>Adidas Running Shorts</similarItem>
</forSale>
</output>
答案 0 :(得分:0)
这似乎不是一个分组问题。如果我理解正确,你想做类似的事情:
XSLT 2.0
<?xml version="1.0" encoding="UTF-8"?>
<output>
<forSale>
<item>Ecco City</item>
</forSale>
<forSale>
<item>Timberland Forest</item>
<similarItem>North Face</similarItem>
</forSale>
<forSale>
<item>Asics Gel-Kayano</item>
<similarItem>Adidas Running Shorts</similarItem>
</forSale>
<forSale>
<item>North Face</item>
<similarItem>Timberland Forest</similarItem>
</forSale>
<forSale>
<item>Adidas Running Shorts</item>
<similarItem>Asics Gel-Kayano</similarItem>
</forSale>
</output>
应用于您的输入示例,结果将是:
ed