0

我需要在 xsl:when 标记中获取“test”属性的值,以及在 xsl:call-template 标记中获取“name”属性的值。这个 xpath 让我非常接近:

..../xsl:template/xsl:choose/xsl:when

但这只是返回'when'元素,而不是我需要的确切属性值。

这是我的 XML 的片段:

<xsl:template match="field">
    <xsl:choose>
    <xsl:when test="@name='First Name'">
        <xsl:call-template name="handleColumn_1" /> 
    </xsl:when>
</xsl:choose>
4

2 回答 2

2

你想要.../xsl:template/xsl:choose/xsl:when/@test

如果您想真正从测试属性中获取值“名字”,那么您就不走运了——属性中的内容只是一个字符串,而不是一段 xml,所以你不能 xpath 它. 如果你需要得到它,你必须使用字符串操作(例如,子字符串)来获取正确的内容

于 2008-09-18T22:07:29.737 回答
1

史蒂夫库珀回答了第一部分。对于第二部分,您可以使用:

.../xsl:template/xsl:choose/xsl:when[@test="@name='First Name'"]/xsl:call-template/@name

这将专门匹配上面代码片段中的 xsl:when 。如果您希望它一般匹配,那么您可以使用:

.../xsl:template/xsl:choose/xsl:when/xsl:call-template/@name
于 2008-09-18T22:42:32.897 回答