给定这个 XML,是否有一个 xpath 可以为我提供“test”和“name”值?
题
我需要获取 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>
解决方案
史蒂夫·库珀回答了第一部分。对于第二部分,您可以使用:
.../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
其他提示
你想要 .../xsl:template/xsl:choose/xsl:when/@test
如果您想实际从测试属性中获取值“First Name”,那么您就不走运了——该属性内的内容只是一个字符串,而不是一段 xml,因此您无法对其进行 xpath 。如果您需要获取该内容,则必须使用字符串操作(例如,子字符串)来获取正确的内容
不隶属于 StackOverflow