HTML 之于 HAML 就像 XSLT 之于 ...?
Posted
技术标签:
【中文标题】HTML 之于 HAML 就像 XSLT 之于 ...?【英文标题】:HTML is to HAML as XSLT is to ...? 【发布时间】:2012-12-22 23:21:17 【问题描述】:我刚刚发现了 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])
【问题讨论】:
is there at least a generic form for XML
- XSLT 是 XML 的通用形式,它可以将任何 XML 文档处理成任何其他文档。
【参考方案1】:
已经有很多尝试为 XSLT 定义“用户友好”或“紧凑”的非 XML 具体语法。据我所知,除了发明者之外,没有任何人曾在愤怒中使用过它们。最后,与更简洁的语法相比,拥有一个理解 XSLT(例如 oXygen)的优秀编辑器可以大大提高生产力。
【讨论】:
谢谢-出于好奇,您对这些尝试有任何指示吗? 早期的一两个已经从网络上消失得无影无踪。但是在谷歌上搜索“XSLT 的紧凑语法”会在页面顶部附近找到三个不错的结果。【参考方案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 年),很久以前就被遗弃了。 Example:
tpl .name "foo" ("a", "b")
"SELECT "
val "$a"
" FROM "
val "$b"
http://savannah.nongnu.org/projects/xsltxt
LX
一种口齿不清的紧凑 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/
【讨论】:
以上是关于HTML 之于 HAML 就像 XSLT 之于 ...?的主要内容,如果未能解决你的问题,请参考以下文章
AWS 之于 K8s,如同 Windows 之于 Linux!