Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 为什么xslt变量不展开?_Variables_Xslt_Expansion - Fatal编程技术网

Variables 为什么xslt变量不展开?

Variables 为什么xslt变量不展开?,variables,xslt,expansion,Variables,Xslt,Expansion,我继承了一些工作不正常的xslt代码。我已经研究了它,并在这里和其他地方研究了各种问题,但仍然无法孤立这个问题。代码中有许多链接试图使用xslt变量link_值。无论它在哪里被引用,它都是以“{$link_value}”格式出现的,这就是混乱开始的地方。在这里的一些答案中,说明变量必须在大括号中,而在其他答案中,大括号不在那里。有些人说它周围没有引号,有些人说它有引号。link_值是一个字符串,引用时需要引号。放置在link_value中的值位于相应的XML中。然后是范围问题,我已经看到了很多答

我继承了一些工作不正常的xslt代码。我已经研究了它,并在这里和其他地方研究了各种问题,但仍然无法孤立这个问题。代码中有许多链接试图使用xslt变量link_值。无论它在哪里被引用,它都是以“{$link_value}”格式出现的,这就是混乱开始的地方。在这里的一些答案中,说明变量必须在大括号中,而在其他答案中,大括号不在那里。有些人说它周围没有引号,有些人说它有引号。link_值是一个字符串,引用时需要引号。放置在link_value中的值位于相应的XML中。然后是范围问题,我已经看到了很多答案,都是矛盾的。有人能告诉我为什么链接值不能正确扩展吗

链接\ u值引用//公司领导/标题,该标题也在第195行引用,并正确显示在网页上

此外,还有一个$(“#roatile”)。单击(function()条目(第176行),它也使用link_值。此条目在网页上给我一个指针,但当我单击它时,什么也没有发生。第180行的条目也有相同的问题。关于此条目有帮助吗

我对XML进行了压缩,使其保持较小,并且只显示相关数据。 chartsdatareport.XML:

<chartsdatareport>
  <privateroaroeratiosdata>
    <datapoint></datapoint>
  </privateroaroeratiosdata>
  <privateincomeratiosdata>
    <datapoint></datapoint>
  </privateincomeratiosdata>
  <companyheader>
    <id>300902</id>
    <title>Bank of America NA</title>
    <address>100 N Tryon St, Ste 170                 </address>
    <citystatezip>Charlotte, NC 28202</citystatezip>
    <phone>(980) 335-3561</phone>
    <fax>(704) 386-0981</fax>
    <internetaddress>www.bankofamerica.com</internetaddress>
  </companyheader>
  <financial>
  </financial>
  <bankinsightrating>
  </bankinsightrating>
  <financialsummary>
  </financialsummary>
  <loancomposition>
  </loancomposition>
  <depositscomposition>
  </depositscomposition>
</chartsdatareport>

300902
美国银行
($000)
'
\'
roeValues.push();
roaValues.push();
四分之一。推(“”);
tier1riskbasedcapital.push();
totalriskbasedcapital.push();
杠杆。推();
tangcomequity.push();
toteQTytotasets.push();
corecaploanlossres.push();
intgrowthrateqtycap.push();
totalinterestincome.push();
totalinterestpense.push();
不感兴趣的。推();
顶推()按钮;
nplsloans.push();
npattalassets.push();
ncoavgloans.push();
reservesgrossloans.push();
totaloansnet.push();
avgearnasst.push();
无轴承沉积物。推动();
TotalNoneLearningAssets.push();
netIncomeValues.push();
netInterestIncomeValues.push();
收入四分之一。推动(“”);
下面是我们另一段代码的片段,这段代码很好用。但我认为由于所有代码都在一起:

     <tr class="evenrow"><td>Top Holding Company:</td>
       <td>
         <xsl:variable name="apos">'</xsl:variable>
         <xsl:variable name="escapos">\'</xsl:variable>
         <xsl:variable name="link_value">
         <xsl:call-template name="string-replace-all">
           <xsl:with-param name="text" select="TOP_HC_NAME" />
           <xsl:with-param name="replace" select="$apos"/>
           <xsl:with-param name="by" select="$escapos"/>
         </xsl:call-template>
         </xsl:variable>
         <xsl:choose>
           <xsl:when test="TOP_HC!=''">
             <a href="javascript:void(0)" onclick="topHC('{TOP_HC}','{$link_value}')"><xsl:value-of select="TOP_HC_NAME" /></a>
           </xsl:when>
           <xsl:otherwise>
             <xsl:value-of select="TOP_HC_NAME" />
           </xsl:otherwise>
         </xsl:choose>
       </td>
     </tr>
顶级控股公司:
'
\'

提前感谢您的帮助。

提取变量值的XPath表达式是不带引号的
$variableName
,但问题是样式表中的哪些位置被解释为XPath表达式,而哪些位置不是

在文本结果元素的属性值中,可以在大括号中包含XPath表达式,并对它们进行计算,这称为“属性值模板”语法

<a onclick="topHC('{TOP_HC}','{$link_value}')">
您不在属性值模板中,
{$link\u value}
按字面形式输出,而不是作为XPath表达式处理。在这种情况下,要计算XPath,需要使用
。在
xsl:text
中包装文字段可能更清晰,这样您就可以在不向结果中引入新行的情况下打断XSLT中的行:

<xsl:attribute name="onclick">
  <xsl:text>parent.getHighlineTop().newTab('...','</xsl:text>
  <xsl:value-of select="$link_value"/>
  <xsl:text>')</xsl:text>
</xsl:attribute>

parent.getHighlineTop().newTab(“…”,”
')

谢谢。感谢您的解释。
<xsl:attribute name="onclick">parent.getHighlineTop().newTab('...','{$link_value}')</xsl:attribute>
<xsl:attribute name="onclick">
  <xsl:text>parent.getHighlineTop().newTab('...','</xsl:text>
  <xsl:value-of select="$link_value"/>
  <xsl:text>')</xsl:text>
</xsl:attribute>