【发布时间】:2012-06-30 22:14:33
【问题描述】:
我有一个源 XML
<Cars>
<Car>
<Make>Fiat</Make>
<Colors>
<Color>RED</Color>
<Color>BLUE</Color>
</Colors>
</Car>
<Car>
<Make>Volvo</Make>
<Colors>
<Color>RED</Color>
<Color>WHITE</Color>
</Colors>
</Car>
<Car>
<Make>Renault</Make>
<Colors>
<Color>BLUE</Color>
<Color>BLACK</Color>
</Colors>
</Car>
</Cars>
我想把它变成类似的东西
<Cars>
<Detail>
<Name>MakeName</Name>
<Entry>Fiat</Entry>
<Entry>Volvo</Entry>
<Entry>Renault</Entry>
</Detail>
<Detail>
<Name>AvailableColors</Name>
<Entry>RED</Entry>
<Entry>BLUE</Entry>
<Entry>WHITE</Entry>
<Entry>BLACK</Entry>
</Detail>
<Cars>
我是 XSL 的新手,并且创建了一个来完成一半的处理,但我坚持将颜色作为目标中的单独元素获取
<xsl:template match="/">
<Cars>
<xsl:apply-templates />
</Cars>
</xsl:template>
<xsl:template match="Cars">
<xsl:apply-templates select="Car" />
</xsl:template>
<xsl:template match="Car">
<Detail>
<Name>MakeName</Name>
<xsl:apply-templates select="Make" />
</Detail>
</xsl:template>
<xsl:template match="Make">
<Entry><xsl:value-of select"text()"/></Entry>
</xsl:template>
我无法为 <Name>AvailableColors</Name> 创建 XSL,我对 XSL 很陌生,非常感谢任何帮助
【问题讨论】:
-
旁注:应用转换后您的业务逻辑是否仍然有效?我希望您的结果中可以使用 WHITE Renault,但您的来源中没有。
-
我们需要一个可以将汽车品牌和颜色作为单独的独特元素的 xml。业务逻辑是将源 xml 元素“Car”拆分为两个结果 xml 元素“Make”和“Color”
标签: xslt