HTML是HAML,因为XSLT是......?

Ste*_*ett 7 xml xslt formatting haml file-conversion

我刚刚发现了HAML,并喜欢它的简洁性和可读性.是否有任何类似的XSLT?特别是,我希望能够更容易区分包含角括号的输出和包含角括号的标记本身.

如果没有专门的XSLT抽象语言,那么至少有一个XML的通用形式吗?

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

  • 不支持带连字符的元素名称(至少在HamlPy中)
  • %xsl:foo不够简洁.XLS命名空间的特殊字符,就像#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]})

Ste*_*ett 2

感谢迈克尔·凯的指点:

接收SLT

“真正的 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>
Run Code Online (Sandbox Code Playgroud)

XSLTXT

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

tpl .name "foo" ("a", "b")
  "SELECT "
  val "$a"
  " FROM "
  val "$b"
Run Code Online (Sandbox Code Playgroud)

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

LX

一种 Lisp 风格的紧凑 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()")))))
Run Code Online (Sandbox Code Playgroud)

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