Xml 我需要一个黑客使xslt允许我们为变量设置新值
我读过,与编程语言不同,XSLT不允许我们为变量设置新值。我只是想知道有没有什么黑客可以绕过人们使用的这个限制?因为具有重置变量值的能力在AIK中是非常有用的Xml 我需要一个黑客使xslt允许我们为变量设置新值,xml,xslt,Xml,Xslt,我读过,与编程语言不同,XSLT不允许我们为变量设置新值。我只是想知道有没有什么黑客可以绕过人们使用的这个限制?因为具有重置变量值的能力在AIK中是非常有用的 至少如果我们可以重置一个变量的值,我可以在这里解决我的问题:在XSLT中,您有常量,而不是变量。不知道他们为什么称之为变量。它们没有变化。它们是恒定的。我所知道的唯一一个技巧就是让你的头脑去理解XSLT。不是最好的解决办法,我知道……但那是XSLT。 < P> XSLT变量必须在传统的数学意义上进行,而不是程序语言的常识,如C++ + <
至少如果我们可以重置一个变量的值,我可以在这里解决我的问题:在XSLT中,您有常量,而不是变量。不知道他们为什么称之为变量。它们没有变化。它们是恒定的。我所知道的唯一一个技巧就是让你的头脑去理解XSLT。不是最好的解决办法,我知道……但那是XSLT。 < P> XSLT变量必须在传统的数学意义上进行,而不是程序语言的常识,如C++ + < /P>。 XSLT不允许我们为变量设置新值 实际上并非如此,因为变量的作用域是包含在XSLT元素中的 因此,如果将变量定义为
xsl:stylesheet
的子变量,则必须将其视为全局常量
但是,如果您将变量定义为xsl:template
的子变量,而您必须仅在模板的当前上下文中将变量视为局部常量,那么在转换的范围内,您可以将其视为一个变量,它可以根据模板上下文采用不同的值。这同样适用于命名模板或函数
有没有什么黑客可以绕过这个限制
只是习惯于以一种实用的方式与他们合作
摘要示例: 如果将变量定义为
xsl:stylesheet
的子变量,以便它们根据转换参数获取值,则可以将该变量视为转换范围内的变量
因此,考虑将参数作为函数的样式表:
F(x)
以及带有变量的模板,作为F(x)
中的子函数,例如:
T(y)
这样你就可以得到摘要:
F(x) = G( T(y), x )
您还可以拥有,例如:
F(x) = G( T(y(x)), x )
取决于您如何设计样式表
我读过,不像编程
语言,XSLT不允许我们
为变量设置一个新值
这里有两个不正确的陈述:
x^y
)或对数,或基本三角函数,或求解任何方程f(x)=0
等
FXSL功能的其他示例在文本处理领域——单词标记化、拼写检查、一致性构建等
使用FXSL函数实现更复杂的任务:通用LR-1解析器、JSON和XPath 2.0解析器、随机数序列生成、数值积分和微分等
所有这一切都是在不更改任何变量的情况下完成的——没有一点被“XSLT不允许这样做”这一事实所阻碍“:)我通常尽可能避免变量的副作用。有一个具体的例子吗?假设XSLT与其他过程语言一样工作,这是一个错误。它可以被扭曲,看起来有点像是程序性的,但本质上不是。这是一种函数式语言,可变变量会使调试(和实现)变得非常困难。我相信SO上的XSL杰出人士(Dimitre、Michael Kay和其他人)可以更好地解释这一点,这就是为什么这是一个注释而不是答案。如果您描述了您试图解决的问题,我们可以帮助您学习如何按预期的方式使用XSLT…+1,我真的很喜欢这个问题。当Dijkstra介绍goto-less编程时,我们中的一些人都在场,很多正在练习的程序员抱怨说goto语句真的很有用。那么,就像现在一样,投诉的答案是:给我们看看你的问题,我们就会给你看