Ste*_*ett 7 xml xslt formatting haml file-conversion
我刚刚发现了HAML,并喜欢它的简洁性和可读性.是否有任何类似的XSLT?特别是,我希望能够更容易区分包含角括号的输出和包含角括号的标记本身.
如果没有专门的XSLT抽象语言,那么至少有一个XML的通用形式吗?
编辑为了好玩,我只是快速测试了使用实际的Haml(实际上是HamlPy)来生成XSLT.我观察到的缺点:
%xsl:foo不够简洁.XLS命名空间的特殊字符,就像#foo会更好.<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”: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)
很旧(2002年),很久以前就被遗弃了。例子:
tpl .name "foo" ("a", "b")
"SELECT "
val "$a"
" FROM "
val "$b"
Run Code Online (Sandbox Code Playgroud)
http://savannah.nongnu.org/projects/xsltxt
一种 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)