我有一个存储过程,它将项目名称返回为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>
但在我的代码中我无法得到名字。这是问题吗?有人知道吗?
答案 0 :(得分:1)
问题似乎是你的ExecStoredProcedure
返回值是xslt观点的字符串(即使sting包含XML)。
XSLt-1.0无法将字符串重新解释为XML。根据您的环境(xlst处理器),您可以使用扩展程序node-set()
来执行此操作。
如果您可以使用此扩展程序,您可以尝试以下内容:
<xsl:variable name="txt1" select="exsl:node-set($Item)//TT[@TXT1]">