当前位置:  开发笔记 > 编程语言 > 正文

打印出XSL变量的值

如何解决《打印出XSL变量的值》经验,为你挑选了2个好方法。

有人可以告诉我如何在我的XSL转换中打印出变量吗?看起来似乎很容易做,但我似乎无法做到.这是我的代码:




  
    
    

    
      1: {$xmlElem}.
      2: {$xmlElem}.
    
  


如果我使用"Wibble"(字符串 - 而不是节点)的xmlElem值调用此模板,我将得到以下输出:


      1: {$xmlElem}.
      2: {$xmlElem}.

所以我的参数正常,我无法正常访问它.有人能告诉我如何正确打印$ xmlElem以便我看到:


      1: Wibble.
      2: Wibble.

感谢您的任何意见.



1> Dimitre Nova..:

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

有人可以告诉我如何在我的XSL转换中打印出变量吗?看起来似乎很容易做,但我似乎无法做到.

在XSLT 1.0中,有两种主要的方法来生成a的内容,具体取决于它是否包含标量值(字符串,数字或布尔值),或者是否具有结构化值 - 节点集(来自xml文档的一个或多个节点) (s)):

    使用它来产生标量值.实际上会生成一个包含此标量值的文本节点.

    使用此选项可生成变量中包含的所有节点的副本.

非常重要的是要知道如果xsl:variable包含节点列表并且使用该指令,则仅产生第一个节点的字符串值.这是一个经常犯的错误和FAQ.

还有第三种方法:如果应该用于生成属性:

  

计算花括号中的XPath表达式(称为AVT - attribute-value-template),并将结果放入属性值中.

在XSLT 2.0中,该指令在不以兼容模式运行时会生成一个文本节点列表 - 每个节点包含一个文本节点xsl:variable.在兼容模式下运行(version="1.0"指定了属性)时,该指令的行为方式与XSLT 1.0中的相同.

在Xslt 2.0中, 行为与XSLT 1.0中的行为相同.但是,建议使用新指令,因为前者生成每个节点的新副本,而不生成新的节点副本.



2> Andrew Hare..:

试试这个:


推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有