编译为xslt?

问题描述 投票:0回答:5

这个问题的答案很可能是否定的,因为大量的搜索却一无所获。我以为我很久以前就看到过这样的东西,但这可能都是海市蜃楼。

基本上,用手写 xslt 是非常糟糕的。困扰我的不是函数范式。令我困扰的是它使用基于 XML 的语法。我想知道是否有任何可用的东西可以将一些更简单、更易读的语法编译成 XSLT 样式表。不一定要有大括号,但尖括号有点令人难以置信。

xml xslt functional-programming
5个回答
3
投票

您可以将 S 表达式从 SXML 转换为 XML。这将使用括号,而不是使用尖括号,语法稍微不那么混乱:

(xsl:template (@ (name "mytemplate"))
  (xsl:if (@ (test "foo = 'bar'"))
    (xsl:value-of (@ (select "@baz")))))

当然,这是否是对 XML 的改进取决于您的个人喜好。


1
投票

我想你可以编写 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"
                }
            }
        }
    }
}

0
投票

我不知道还有哪个编译器可以转换为 XSLT。

但是我确实知道一些可以使 XSLT 工作更轻松的工具/IDE。

手写笔工作室

Netbeans IDE这是免费的

您还可以在这里找到开源工具。


0
投票
如果您想要在处理 XML 文档时具有(大部分)XSLT 的表达能力,但您不喜欢 XPath 之外的冗长语法,那么也许您应该看看

XQuery


0
投票
Oxygen XML 应用程序在维护任何基于 SGML 的内容时表现出色。不要尝试在记事本中编写 XSLT,您可能会自杀:)

http://www.oxygenxml.com/

© www.soinside.com 2019 - 2024. All rights reserved.