这个问题的答案很可能是否定的,因为大量的搜索却一无所获。我以为我很久以前就看到过这样的东西,但这可能都是海市蜃楼。
基本上,用手写 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"
}
}
}
}
}
XQuery。