1
我'XSLT模板新XSLT和需要帮助递归和条件
这是我的XML源文件:
<cars best-category="83">
<category id="1" name="SUV">
<category id = "50" name="BMW">
</category>
</category>
<category id="2" name="combi">
<category id = "60" name="Volkswagen">
<category id="102" name="4x4">
</category>
</category>
<category id = "83" name="Skoda">
</category>
<category id = "32" name="Seat">
</category>
</category>
<category id="12" name="another">
</category>
</cars>
,我需要这个结果(通过BEST-选择全名属性路径类别值):
<CATEGORYTEXT>combi | Skoda</CATEGORYTEXT>
我的XSLT:
<xsl:for-each select="cars/category">
<CATEGORYTEXT>
<xsl:apply-templates select="category" >
<xsl:with-param name="text" >
<xsl:value-of select="@name" />
</xsl:with-param>
</xsl:apply-templates>
</CATEGORYTEXT>
</xsl:for-each
和我的模板:
<xsl:template match="category">
<xsl:param name="text" />
<xsl:if test="category">
<xsl:apply-templates select="category">
<xsl:with-param name="text">
<xsl:value-of select="$text" />
<xsl:text>
|
</xsl:text>
<xsl:value-of select="@name" />
</xsl:with-param>
</xsl:apply-templates>
</xsl:if>
<xsl:value-of select="$text" />
<xsl:text>
|
</xsl:text>
<xsl:value-of select="@name" />
</xsl:template>
芽我不知道,如何筛选结果的最佳类别值...谁能帮助我?
感谢
这是确定这个确切的例子,但如果有下一个内部类的子元素?像这样: '<汽车最佳类别= “87”> \t <类别ID = “2” 名称= “组合式”> <类别ID = “83” 名称= “斯柯达”> \t \t \t <类别ID = “87” 名称= “4×4”> \t ' 或 '<汽车最佳类别= “12”> \t <类别ID = “12” 名称=“另一“> \t ' – zvodev
请不要在评论中发布代码 - 而是编辑您的问题。 –
规则就像操作系统中的文件夹路径,如果best-category = 12,那么结果只是“another”,或者如果102然后'combi |大众| 4x4' – zvodev