无法获取xslt变量的值

时间:2013-06-20 06:29:43

标签: xml xslt xslt-1.0

我有一个存储过程,它将项目名称返回为xml.I在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>

但在我的代码中我无法得到名字。这是问题吗?有人知道吗?

1 个答案:

答案 0 :(得分:1)

问题似乎是你的ExecStoredProcedure返回值是xslt观点的字符串(即使sting包含XML)。

XSLt-1.0无法将字符串重新解释为XML。根据您的环境(xlst处理器),您可以使用扩展程序node-set()来执行此操作。

如果您可以使用此扩展程序,您可以尝试以下内容:

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