xslt - 来自其他语言的 XSLT 的两个概念 : apply-templates and xpath

标签 xslt xpath templating apply-templates

背景: 放弃了将 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/

相关文章:

r - 使用rentrez在R中解析XML文件

xslt - 具有属性的节点的位置

xml - 具有基于节点数的动态列的 XSLT WordML 表

xslt - xslt 中的简单循环

xml - name() 和 local-name() 有什么区别?

xpath - 如何在 wevtutil 中使用 xpath 检索特定时间以来的事件

java - 是否有类似于 Razor 的模板语言用于 Java Spring Web 应用程序?

java - 我应该使用哪个 Java 模板系统来生成电子邮件?

javascript - Handlebars 动态字段名称

xml - 使用 xslt 更改元素的命名空间