5
我有一個自定義XML,需要使用XSL轉換爲另一種XML格式。使用XSLT轉換XML
輸入:
<Feed>
<repository>
<item-descriptor name="product">
<property name="id">123</property>
<property name="display">asdf</property>
<property name="attr1">attr1</property>
<property name="attr2">attr2</property>
</item-descriptor>
</repository>
</Feed>
輸出:
<Feed>
<Products>
<product>
<id>123</id>
<display>asdf</display>
<attr1>attr1</attr>
<attr2>attr2</attr2>
</product>
</Products>
</Feed>
以下XSL是用於獲取所需的輸出。
XSL:
<xsl:template match="/">
<xsl:apply-templates select="Feed"/>
</xsl:template>
<xsl:template match="Feed">
<Feed>
<Products>
<xsl:apply-templates select="repository/item-descriptor[@name='product']"/>
</Products>
</Feed>
</xsl:template>
<xsl:template match="repository/item-descriptor[@name='product']">
<product>
<xsl:apply-templates select="property"/>
</product>
</xsl:template>
<xsl:template match="property">
<xsl:if [email protected]='id'>
<id><xsl:value-of select='.'></id>
</xsl:if> <xsl:if [email protected]='display'>
<display><xls:value-of select='.'></display>
<xsl:if [email protected]='attr1'>
<attr1><xsl:value-of select='.'></attr1>
</xsl:if>
<xsl:if [email protected]='attr2'>
<attr2><xls:value-of select='.'></attr2>
</xsl:template>
現在我需要生成以下,請幫我在修改上述XSL得到以下的輸出:
<Feed>
<Products>
<product>
<id>123</id>
<display>asdf</display>
<attributes>
<aatr1>attr1</attr1>
<attr2>attr2</attr2>
</attributes>
</product>
</Products>
</Feed>
問得好,+1。 Seemy回答完整的解決方案。 – 2010-10-15 19:12:11
@Shaji時間來關閉這個答案... – 2016-05-20 22:04:39