给定这种XML,是否有一个xpath可以给我"测试"和"名称"值?
时间:2020-03-06 14:23:45 来源:igfitidea点击:
我需要在xsl:when标记中获取'test'属性的值,并在xsl:call-template标记中获取'name'属性的值。这个xpath使我非常接近:
..../xsl:template/xsl:choose/xsl: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`
如果我们想从测试属性中实际获取值" First Name",那么我们就不走运了-属性内的内容只是一个字符串,而不是一段xml,因此无法对其进行xpath。如果需要获取该内容,则必须使用字符串操作(例如,子字符串)来获取正确的内容
史蒂夫·库珀回答了第一部分。对于第二部分,我们可以使用:
.../xsl:template/xsl:choose/xsl:when[@test="@name='First Name'"]/xsl:call-template/@name
在上面的代码段中,该代码将与xsl:专门匹配。如果我们希望它与一般匹配,则可以使用:
.../xsl:template/xsl:choose/xsl:when/xsl:call-template/@name