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

时间:2009-06-11 18:06:06

标签: xml delphi xslt

我已经获得了一个示例XML文件(最终我的客户端每天会收到几个这样的文件)和一个XSLT文件,它显然会将XML转换为具有有意义布局的内容,适合在浏览器中显示或打印

我想在现有的旧版Delphi应用程序中添加一些内容,以便用户可以从驱动器中选择一个XML文件并“显示”它(在TWebBrowser或类似文件中)。

我不知道从哪里开始,谷歌搜索delphi,xml和xslt让我看来似乎是基于数据模块/数据库的例子;我只想将给定的XML文件转换为屏幕上的内容。看起来它可能涉及到PageProducer,但我无法理解我需要做的事情。有人提供任何指针,或者指向快速教程的链接吗?

非常感谢!

4 个答案:

答案 0 :(得分:10)

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;

答案 1 :(得分:6)

我使用MSXML库在Delphi中进行XSLT转换。很久以前了。工作就像一个魅力!

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

这是link on MSSXML and Delphi可能会有所帮助。

顺便说一句:如果这是您第一次使用XSLT,您可以手动编辑XML文件,并添加指令以使其使用特定的XSLT进行显示。在编辑后在Firefox中打开XML时,将应用XSLT,它将显示MSXML调用的输出。 这是您手动添加到xml的行:

<?xml-stylesheet type="text/xsl" href="myStyleSheet.xsl"?>

答案 2 :(得分:2)

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

就我个人而言,我遇到了MSXML的一些问题,所以我开始使用DIXML

答案 3 :(得分:1)

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

下载

MsXml只适用于xslt 1.0,但AltovaXml可以使用xslt 2.0