XPTY0020:查找树的根:上下文项不是节点

2023-12-20

XSLT 中的这个错误让我难住了:

XPTY0020: Finding root of tree: the context item is not a node

我的 XSLT 指出错误所在,只是一个普通的旧变量声明:

<xsl:variable name="jmeterAvgTps"
                            select="/summary/results[@count eq $currentResult]/simulator[@id eq $currentId]/jmeter/tps/avg/text()" />

XPATH是没问题的,我已经检查过好几次了,并且在XSLT的其他地方也使用过它。谷歌搜索没有发现任何有用的信息。

完整模板:

<xsl:template name="populateJmeterStats">
<xsl:param name="currentHost"/>
<xsl:param name="currentAction" />
<xsl:param name="currentResult" />  
<xsl:param name="currentId" />  


                        <xsl:message>Populating jmeter stats: 
                        <xsl:value-of select="$currentHost"/>:
                        <xsl:value-of select="$currentResult"/>:
                        <xsl:value-of select="$currentAction"/>:
                        <xsl:value-of select="$currentId"/>:
                        </xsl:message>      
                                                        <xsl:if test="$currentAction='data'">

                        <xsl:if
                            test="$currentHost='jmeter'">   
                            <xsl:message>host is jmeter</xsl:message>

                        <xsl:variable name="jmeterAvgTps"
                            select="/summary/results[@count eq $currentResult]/simulator[@id eq $currentId]/jmeter/tps/avg/text()" />

                            <xsl:variable name="jmeterPercentileTps"
                                select="/summary/results[@count eq $currentResult]/simulator[@id eq $currentId]/jmeter/tps/percentile/text()" />

                                <xsl:if test="$jmeterAvgTps">
                                    <td>
                                        <xsl:value-of select="$jmeterAvgTps" />
                                    </td>
                                </xsl:if>

                                <xsl:if test="$jmeterPercentileTps">
                                    <td>

                                        <xsl:value-of select="$jmeterPercentileTps" />
                                    </td>

                                </xsl:if>

                            </xsl:if>

                                </xsl:if>       

声明一个全局变量<xsl:variable name="main-root" select="/"/>然后使用<xsl:variable name="jmeterAvgTps" select="$main-root/summary/results[@count eq $currentResult]/simulator[@id eq $currentId]/jmeter/tps/avg/text()" />问题就会消失。

在 XSLT 2.0 及更高版本中,上下文项可以是原始值,例如字符串或数字,在这种情况下,除了将其存储在变量中并访问它之外,无法访问输入文档的节点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XPTY0020:查找树的根:上下文项不是节点 的相关文章

随机推荐