XSL Foreach - 获得价值

时间:2011-09-29 17:40:45

标签: xslt xslt-1.0 google-search-appliance

以下是每条记录中的一些XML:

<MT N="usage" V="something"/>
<MT N="usage" V="something else"/>

我正在尝试使用XSLT显示每条记录的所有这些V值,但是我遇到了针对正确值的问题。

<xsl:for-each select="MT[@N = 'usage']/@V">
    <xsl:value-of select="V"/>
    11
</xsl:for-each>

输出“1111”,但不显示V的值。我该如何定位?

干杯

2 个答案:

答案 0 :(得分:5)

select =“V”可能不是节点。

怎么样?
<xsl:for-each select="MT[@N = 'practice']">
<xsl:value-of select="@V"/>
11
</xsl:for-each>

答案 1 :(得分:1)

<xsl:for-each select="MT[@N = 'usage']/@V"> 
    <xsl:value-of select="V"/> 
    11 
</xsl:for-each>

上面的<xsl:value-of>试图显示作为当前节点的子元素的元素V的值。但是,当前节点是属性,根据定义,属性没有子节点。这就是你遇到的问题。

<强>解决方案

<xsl:for-each select="MT[@N = 'usage']/@V"> 
    <xsl:value-of select="."/> 
    11 
</xsl:for-each>

现在<xsl:value-of>输出当前节点的字符串值 - 这可能是预期的。