7

我刚刚发现了 HAML,并且喜欢它的简洁性和可读性。XSLT 有什么等价物吗?特别是,我希望能够更容易区分包含尖括号的输出和包含尖括号的标记本身的东西。

如果没有专门的 XSLT 抽象语言,是否至少有一种通用的 XML 形式也可以使用?

编辑为了好玩,我刚刚做了一个使用实际 Haml(实际上是 HamlPy)生成 XSLT 的快速测试。我观察到的缺点:

  • 不支持连字符的元素名称(至少在 HamlPy 中)
  • %xsl:foo不够简洁。XLS 命名空间的特殊字符,like#foo会更好。
  • 特定于 HTML 的规则妨碍了(在我的情况下,特殊的自闭合标签规则<meta>是一个问题)
  • %xsl:attribute(name="foo" value="blah")还是太冗长了。类似的东西.foo="blah"会更好。
  • 某些属性select很常见,可以隐含:#value-of "./a[@href]"
  • 不需要像-和处理逻辑这样的功能,因此可以重新用于 xquery 或 xpath 之类的东西。=或者可能{foo}<xsl:value-of select="foo"/>. 那会很酷:%p(style={../[@style]})
4

2 回答 2

2

已经有许多尝试为 XSLT 定义“用户友好”或“紧凑”的非 XML 具体语法。据我所知,除了发明者之外,没有任何人曾在愤怒中使用过它们。最后,拥有一个理解 XSLT(例如 oXygen)的优秀编辑器比拥有更简洁的语法能带来更好的生产力提升。

于 2013-01-09T08:53:59.873 回答
2

感谢 Michael Kay 的指点:

RXSLT

“真正的 XSLT”: http: //www.wilmott.ca/rxslt/rxslt.html

template doc
   apply-templates
 template doc/title
   <H1>{apply-templates}</H1>
 template doc/para
   <P>{apply-templates}</P>

XSLTXT

很旧(2002 年),很久以前就被遗弃了。示例

tpl .name "foo" ("a", "b")
  "SELECT "
  val "$a"
  " FROM "
  val "$b"

http://savannah.nongnu.org/projects/xsltxt

LX

一个 lisp-ish 紧凑的 XML 表示法。不确定 XSLT 是否有任何特殊处理:

;; The XSLT identity transformation
(lx:namespace ((#f "http://www.w3.org/1999/XSL/Transform"))
  (stylesheet version: 1.0
    (template match: "node()|@*"
      (copy
        (apply-templates select: "@*|node()")))))

http://nxg.me.uk/dist/lx/

于 2013-01-15T01:20:27.247 回答