代码之家  ›  专栏  ›  技术社区  ›  Breton

编译成xslt?

  •  4
  • Breton  · 技术社区  · 15 年前

    基本上,手工编写xslt非常糟糕。困扰我的不是功能范式。困扰我的是它使用基于XML的语法。我想知道是否有任何东西可以从更简单易读的语法编译成XSLT样式表。不必有花括号,但尖括号有点让人难以置信。

    5 回复  |  直到 15 年前
        1
  •  3
  •   Greg Hewgill    15 年前

    您可以将S表达式翻译为 SXML 转换为XML。与其使用尖括号,不如使用语法稍微不那么混乱的括号:

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

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

        2
  •  1
  •   Robert Harvey    15 年前

    我想你会写 JSON 并将其转换为XML。 JSON.NET 能够在两种格式之间进行转换。

    <!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"
                    }
                }
            }
        }
    }
    
        3
  •  0
  •   Kevin Boyd    15 年前

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

    不过,我确实知道一些工具/ide,它们可以使使用XSLT更容易。

    Stylus Studio

    Netbeans IDE 这是免费的

    您还可以找到一个开源工具 here.

        4
  •  0
  •   Pavel Minaev    15 年前

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

        5
  •  0
  •   Rich Seviora    15 年前

    Oxygen XML应用程序在维护任何基于SGML的东西时都能发挥神奇的作用。不要试图在记事本中编写XSLT,您可能会自杀:)

    http://www.oxygenxml.com/