对此的回答很可能不是,尽管搜索没有任何结果。我很早以前就想到了这样的事情,但这可能都是幻想。编译为xslt?
基本上,用手写xslt是非常可怕的。困扰我的并不是功能范式。令我困扰的是它使用基于XML的语法。我想知道是否有任何可用的,可以从一些更简单更清晰的语法编译成XSLT样式表。没有花括号,但尖括号有点令人难以置信。
谢谢。
对此的回答很可能不是,尽管搜索没有任何结果。我很早以前就想到了这样的事情,但这可能都是幻想。编译为xslt?
基本上,用手写xslt是非常可怕的。困扰我的并不是功能范式。令我困扰的是它使用基于XML的语法。我想知道是否有任何可用的,可以从一些更简单更清晰的语法编译成XSLT样式表。没有花括号,但尖括号有点令人难以置信。
谢谢。
你可以S-言词作为SXML到XML。而不是使用尖括号,这将使用括号略有更简洁的语法:
(xsl:template (@ (name "mytemplate"))
(xsl:if (@ (test "foo = 'bar'"))
(xsl:value-of (@ (select "@baz")))))
这是否是在XML的改进取决于你的个人品味,当然。
我想你可以写JSON并将其转换为XML。 JSON.NET能够在两种格式之间转换。
这个XML:
<!DOCTYPE glossary PUBLIC "-//OASIS//DTD DocBook V3.1//EN">
<glossary><title>example glossary</title>
<GlossDiv><title>S</title>
<GlossList>
<GlossEntry ID="SGML" SortAs="SGML">
<GlossTerm>Standard Generalized Markup Language</GlossTerm>
<Acronym>SGML</Acronym>
<Abbrev>ISO 8879:1986</Abbrev>
<GlossDef>
<para>A meta-markup language, used to create markup
languages such as DocBook.</para>
<GlossSeeAlso OtherTerm="GML">
<GlossSeeAlso OtherTerm="XML">
</GlossDef>
<GlossSee OtherTerm="markup">
</GlossEntry>
</GlossList>
</GlossDiv>
</glossary>
看起来这在JSON:
{
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup languages such as DocBook.",
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "markup"
}
}
}
}
}
当涉及到维护任何基于SGML的应用程序时,Oxygen XML应用程序可以创造奇迹。不要试图写在记事本中的XSLT,你可能最终自杀:)
不幸的是,我不认为你的JSON的翻译是在许多JSON解析器忠诚。我的理解并不保留json成员的顺序,但是需要保留顺序以用于忠实的xml表示。 – Davorak 2014-11-14 22:17:22