我在选择节点集中的值时遇到了一些麻烦。我有一个字符串变量, 它连接在xml中下一个存在节点的路径中。但是当我试图从中选择价值时, 它导致粘贴此变量的值,而不是节点的值。我无法找到我的能力 将字符串转换为节点集以进行正确选择。请帮忙。
<xsl:for-each select="result/node()">
<xsl:copy>
<xsl:for-each select="./node()">
<xsl:copy>
<xsl:attribute name="rating">
<xsl:text>0</xsl:text>
</xsl:attribute>
<xsl:choose>
<xsl:when test="translate(
substring(.,1,3),
$upCase,
$lowCase
) = 'id_'">
<xsl:value-of select="."/>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="cval"
select="concat(
'/survey/checkbox_value/',
local-name(),
'/.'
)" />
<xsl:value-of select="$cval" />
</xsl:otherwise>
</xsl:choose>
</xsl:copy>
</xsl:for-each>
</xsl:copy>
</xsl:for-each>
答案 0 :(得分:1)
您无需转换任何内容。它可以用普通的xpath完成。
<xsl:variable name="local_name" select="local-name()"/>
<xsl:value-of select="/survey/checkbox_value/node()[
local-name() = $local_name
]"/>