无法获取 xslt 变量的值



我有一个返回项目名称为xml的存储过程。我在xslt代码中使用它来返回名称。我想把名字放到一个xslt变量中。我试了试像

这样的代码
<xsl:variable name="Item" 
  select="shop:ExecStoredProcedure(
           'kt_Item',
           concat('@Dcat:',$p//defaultcategory)
          )" />
<xsl:variable name="txt1" 
              select="$Item//TT[@TXT1]"/>
  <textarea>
    <xsl:value-of select="$txt1"/>
  </textarea>

输出XML类似于

<root>
<item>
<Column1>
<TT TXT1="Item3" />
<TT TXT1="Item2" />
<TT TXT1="Item1" />
</Column1>
</item>
</root>

但是在我的代码中,我无法获得名称。有什么问题吗,有人知道吗?

问题似乎是您的ExecStoredProcedure返回值是从xslt的角度来看的字符串(即使字符串包含XML)。

XSLt-1.0不能将字符串重新解释为XML。根据您的环境(xlst处理器),您可以使用扩展node-set()来完成此操作。

如果你可以使用这个扩展,你可以尝试这样做:

 <xsl:variable name="txt1" select="exsl:node-set($Item)//TT[@TXT1]">

相关内容

  • 没有找到相关文章

最新更新