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

如何在Delphi应用程序中使用XSLT文档显示XML?

  •  12
  • robsoft  · 技术社区  · 16 年前

    我得到了一个示例XML文件(最终我的客户每天都会收到其中的几个),以及一个XSLT文件,它显然会将XML转换成一个有意义的布局,适合在浏览器或打印中显示。

    我想把一些东西放到现有的Delphi应用程序中,这样用户可以从驱动器中选择一个XML文件并“显示”(在twebbrowser或类似软件中)。

    我不知道从哪里开始,谷歌Delphi、XML和XSLT为我提供了一些看起来基于数据模块/数据库的例子;我只想把一个给定的XML文件转换成屏幕上的某种东西。看起来它可能涉及到一个页面生产者,但我不能完全理解我需要做什么。有人提供任何指针,或者链接到快速教程吗?

    多谢!

    4 回复  |  直到 12 年前
        1
  •  10
  •   Ken Byington    16 年前
    Uses
      XMLDoc, XMLIntf;
    
    function Transform(XMLContent : string; XSLContent : string) : WideString;
    var
      XML : IXMLDocument;
      XSL : IXMLDocument;
    begin
    
      XML := LoadXMLData(XMLContent);
      XSL := LoadXMLData(XSLContent);
    
      XML.DocumentElement.TransformNode(XSL.DocumentElement, Result)
    
    end;
    
        2
  •  6
  •   Kieveli    16 年前

    我使用MSXML库在Delphi中进行了XSLT转换。那是很久以前的事了。工作得很有魅力!

    我不确定您的XSLT将生成什么输出格式,但知道这将帮助您了解如何显示它。我们通过XSLT从XML生成HTML,并在应用程序的窗格中使用ActiveX Web浏览器(IE)控件显示它。

    这里有一个 link on MSSXML and Delphi 这可能会有所帮助。

    btw:如果这是您第一次使用XSLT,您可以手动编辑一个XML文件,并添加一个指令,让它使用特定的XSLT显示。当您在编辑后在Firefox中打开XML时,将应用XSLT,它将向您显示您的MSXML调用的输出。 下面是您手动添加到XML的行:

    <?xml-stylesheet type="text/xsl" href="myStyleSheet.xsl"?>
    
        3
  •  2
  •   bluish dmajkic    12 年前

    如果只需要转换,可以使用 TXMLDocument ,保存到磁盘,然后将结果显示在 TWebBrowser (通过 Navigate('file:///...') )

    我个人对MSXML有一些问题,所以我开始使用 DIXML .

        4
  •  1
  •   Feng    15 年前

    您可以尝试安装altovaxml,它可以作为COM+调用。它是免费的,可以从以下网站下载: http://www.altova.com/altovaxml.html

    MSXML只能用于XSLT1.0,但AltovaXML可以用于XSLT2.0