xml – 打印XSL变量的值
有人可以告诉我如何在XSL转换中打印出一个变量?似乎是一件容易的事情,但我似乎不能这样做.这是我的代码:
<?xml version='1.0' encoding='UTF-8' ?> <xsl:stylesheet version="1.0" xmlns:fn="http://www.w3.org/2005/02/xpath-functions" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template name="ControlledListStructure"> <xsl:param name="xmlElem" /> <xsl:param name="dataName" /> <xsl:element name="{$xmlElem}"> 1: <xsl:text>{$xmlElem}</xsl:text>. 2: {$xmlElem}. </xsl:element> </xsl:template> </xsl:stylesheet> 如果我使用xmlElem的值为“Wibble”(一个字符串而不是一个节点)调用此模板,我将得到以下输出: <Wibble> 1: {$xmlElem}. 2: {$xmlElem}. </Wibble> 所以我的参数是正确的,我只是无法正确访问.有人可以告诉我如何让$xmlElem正确打印,以便我看到: <Wibble> 1: Wibble. 2: Wibble. </Wibble> 感谢任何投入.
所有答案都缺少重要内容:进一步阅读:
在XSLT 1.0中,根据它是否包含标量值(字符串,数字或布尔值)还是具有结构化值 – 一个节点集(从xml的一个或多个节点),可以生成一个 > 非常重要的是要知道,如果xsl:变量包含一个节点列表,< xsl:value-of ...>使用指令,只会产生第一个节点的字符串值.这是一个经常提交的错误和常见问题. 有第三种方法:如果< xsl:variable>应用于生成属性: <someLiteralResultElement someAttribute="{$theVariable}"/> 评估大括号(称为AVT — attribute-value-template)中的XPath表达式,并将结果放入属性值. 在XSLT 2.0中,< xsl:value-of ... />指令,当运行不兼容模式时,会生成一个文本节点列表,一个用于xsl:变量中包含的每个节点.当以兼容性模式运行(具有指定的属性version =“1.0”)时,< xsl:value-of>指令的行为方式与XSLT 1.0中的相同. 在Xslt 2.0< xsl:copy-of>行为方式与XSLT 1.0相同.然而,建议使用新的 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |