加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml – 打印XSL变量的值

发布时间:2020-12-16 07:53:50 所属栏目:百科 来源:网络整理
导读:有人可以告诉我如何在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://ww
有人可以告诉我如何在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>

感谢任何投入.

所有答案都缺少重要内容:进一步阅读:

Can someone please tell me how to
print out a variable in my XSL
transform? Seems like an easy enough
thing to do but I just can’t seem to
do it.

在XSLT 1.0中,根据它是否包含标量值(字符串,数字或布尔值)还是具有结构化值 – 一个节点集(从xml的一个或多个节点),可以生成一个<xsl:variable>的内容的两种主要方法文件):

> <xsl:value-of select="$yourscalarVariableName"/>使用它来产生标量值.实际生成一个包含这个标量值的文本节点.
> <xsl:copy-of select="$yourStructuredVariableName"/>使用它来生成包含在变量中的所有节点的副本.

非常重要的是要知道,如果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相同.然而,建议使用新的<xsl:sequence>指令,因为前者会产生每个节点的新副本,而< xsl:sequence>不产生节点的新副本.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读