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

我刚刚发现了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]})

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


    感谢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/

    链接地址: http://www.djcxy.com/p/68155.html

    上一篇: HTML is to HAML as XSLT is to ...?

    下一篇: Intercept file\folder I\O without API hooking or filter driver