Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 向现有变量XSL添加新节点_Xml_Xslt - Fatal编程技术网

Xml 向现有变量XSL添加新节点

Xml 向现有变量XSL添加新节点,xml,xslt,Xml,Xslt,我有一个关于XSL中变量的问题。 我不太清楚变量的概念 我正在xsl文件中创建一个变量,如下所示: <xsl:variable name="vars"></xsl:variable> 然后在for-each循环中,在每次迭代中,我想向现有变量添加一个节点,例如 <xsl:for-each select="..."> <vars><var>A</var></vars> </xsl:for-each>

我有一个关于XSL中变量的问题。 我不太清楚变量的概念

我正在xsl文件中创建一个变量,如下所示:

<xsl:variable name="vars"></xsl:variable>

然后在for-each循环中,在每次迭代中,我想向现有变量添加一个节点,例如

<xsl:for-each select="...">
<vars><var>A</var></vars>
</xsl:for-each>

A.
为了实现这一点,我应该使用变量吗? 如果是,如何将新节点添加到现有变量

我只能在XSL文件中操作,没有访问或修改xml、xsd的权限


谢谢

XSLT中的变量是不可变的;它们不能被修改。(它们还必须在一个步骤中声明和初始化。)


看起来您正在尝试构建一个输出结构。你能直接在循环中输出结果吗?否则,您需要重新考虑您的方法。

XSLT是一种函数式语言。除其他外,这意味着变量一旦定义就不可更改

任何可以用命令式解决方案解决的问题,不仅可以用XSLT解决,也可以用任何函数式编程语言解决——可能采用非常类似的方式。在大多数情况下,存在并可以使用有效的功能解决方案

我极力推荐阅读一本关于函数式编程的好书——一本叫做“Haskell in the real world”。不仅是出于一般的兴趣,而且因为在未来的/函数是一等公民(高阶函数),像这样的函数是XPath 3.0中的标准函数


请准确地说明您的问题,许多人将能够提供XSLT解决方案

来补充其他人所说的内容,如果您告诉我们您的转换的输入和输出是什么样子的(如果需要,它们是如何关联的)-也就是说,如果您将您的转换描述为一个函数,那么我们应该能够展示您需要如何以非过程的方式对其进行编码。