使用XSLT选择XML节点

时间:2015-03-07 09:24:49

标签: xml xslt xpath

我有以下XML结构:

        <Car>
            <BMW>
                <Price>100</Price>
            </BMW>
        </Car>
        <Car>
            <TOYOTA>
                <Price>100</Price>
            </TOYOTA>
        </Car>  

我希望用这样的文字转换它:

    <xsl:if test="Car/BMW">
        <xsl:value-of select="Car/BMW/Price" />§BMW§<xsl:value-of select="'&#x000a;'"/>
    </xsl:if>
    <xsl:if test="Car/TOYOTA">
        <xsl:value-of select="Car/TOYOTA/Price" />§TOYOTA§<xsl:value-of select="'&#x000a;'"/>
    </xsl:if>   

问题是我是否可以在没有if条件的情况下做同样的事情。

1 个答案:

答案 0 :(得分:1)

看起来你想要的是每个Price元素的一行,第二位文本取自该元素的父级的名称:

<xsl:for-each select="Car/*/Price">
  <xsl:value-of select="concat(., '§', local-name(..), '§&#xa;')/>
</xsl:for-each>