0

我有一个存储过程,它以 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>

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

4

1 回答 1

1

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

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

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

 <xsl:variable name="txt1" select="exsl:node-set($Item)//TT[@TXT1]">
于 2013-06-20T08:06:01.573 回答