背景: 放弃了将 XSLT 作为我的编程工具包的一部分的日常实际使用,我想知道是否有其他语言的任何实现(仅)我想念的两件事关于该工具:
- 能够通过 xpath 使用“路径”样式语句遍历数据结构
- 能够使用应用模板而不是通过迭代或“循环”方法遍历模板转换。
根据 Google 的说法,有一些努力为 Javascript 添加“xpath 样式”支持,但这些努力显然没有流行起来。到目前为止,我还没有发现有人使用另一种语言的“应用模板”方法的任何内容
问题:有没有人知道一种编程语言(希望是主流语言)从 XSLT 中窃取了这两个好主意,或者使用不同的方法应用相同或相似的概念?
最佳答案
the ability to traverse data structures using "path" style statments via xpath
我不知道有任何其他语言嵌入了 XPath,但 LINQ to XML 有点相似,特别是在其 VB syntactic sugar 中。化身。但是,您可以在 Common Lisp 宏或 D 模板中实现它。
the ability to traverse template transformations using apply-templates instead of via an iterative or "looping" approach.
没有我所知道的主流语言。事实上,这个特性可能是使用 XSLT 的主要原因(而不是 XQuery,查看密切相关的语言)。
它是在任意条件下对接收方进行有效扩展的动态调度——因此,我认为你可以在 Common Lisp(具体来说是 CLOS)中做到这一点——如果我没记错的话,它的多重方法可以匹配任意条件,所以如果你有一个 XPath 模式评估器,您可以使用它来模拟 apply-templates
,甚至更多 - 因为 apply-templates
仅在单个参数上分派(dispatch),而 CLOS 多方法分派(dispatch)在多个参数。
关于xslt - 来自其他语言的 XSLT 的两个概念 : apply-templates and xpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1145409/