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

rob*_*oft 12 xml delphi xslt

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

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

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

非常感谢!

Ken*_*ton 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;
Run Code Online (Sandbox Code Playgroud)


Kie*_*eli 6

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

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

这是MSSXML和Delphi上可能有用链接.

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

<?xml-stylesheet type="text/xsl" href="myStyleSheet.xsl"?>
Run Code Online (Sandbox Code Playgroud)