2010-08-05 36 views
2

什么我需要使用XSLT 2.0与德尔福(win32)?目前我使用MSXML6进行所有的xml转换。但MSXML6不支持XSLT 2.0。什么我需要使用XSLT 2.0与德尔福

溶液(由ErvinS
使用AltovaXML库。安装后,您必须导入AltovXML类型库。那么你可以使用这样的源代码:

procedure TfrmMainAltovaXmlDemo.btnTransformClick(Sender: TObject); 
var 
    xmlApp: AltovaXMLLib_TLB.Application; 
    xslt2: AltovaXMLLib_TLB.XSLT2; 
begin 
    xmlApp := AltovaXMLLib_TLB.CoApplication.Create; 
    xslt2 := xmlApp.XSLT2; 
    xslt2.InputXMLFromText := FInputXml; 
    xslt2.XSLFromText := FXslSource; 
    FOutputXML := xslt2.ExecuteAndGetResultAsString; 
end;
+0

另请参阅此问题:http://stackoverflow.com/questions/982687/how-do-i-display-xml-using-an-xslt-document-in-a-delphi-app和这个德国的答案: http://www.delphipraxis.net/153477-delphi-win32-und-xslt-2-0-a.html – 2010-08-05 14:08:32

回答

2

Altova具有AltovaXML,这是一个免费的基于COM组件。

+0

+1;现在很酷!我更新了http://en.wikipedia.org/wiki/Altova#Products和http://en.wikipedia.org/wiki/XML_template_engine#Implementations 谢谢! – 2010-08-05 11:01:37

+0

+1适用于基于XSLT 2.0的基于COM的推荐。 – 2010-08-05 13:53:18

+0

@Ajjandro:请注意,.NET通常也可以称为COM。另外请注意,COM通常并不是我最喜欢的方式,将第三方组件集成到我的Delphi应用程序中。 – 2010-08-05 13:54:57

1

据我所知,德尔福本身没有XSLT 2.0 implmenentation。
通常,只有少数XSLT 2.0实现。
维基百科有一个overview of XSLT processors

  • SAXON在Java和.NET中有XSLT 2.0的开源实现。
  • XJR是C/C++中的付费实现。

您可以将它们全部集成到您的Delphi应用程序中。
根据您想如何接近有这样的整合,有几个出发点:

--jeroen