我正在通过COM使用mxsml 6来执行转换。源样式表有一个xs:import语句,我知道如何包含它,但是我如何告诉MSXML这样做呢?我似乎找不到地方让IXSLTemplate加载解析的源代码
详细信息:
代码:
var
v: variant;
doc : IXMLDOMDocument2;
xform: IXSLTemplate;
begin
v := CreateOLEObject('MSXML2.FreeThreadedDOMDocument.6.0')
doc := IUnknown(TVarData(v).VDispatch) as IXMLDomDocument2;
doc.async := false;
doc.resolveExternals := true;
doc.loadXML([my source for the first transform below]);
v := CreateOLEObject('MSXML2.XSLTemplate.6.0');
xform := IUnknown(TVarData(v).VDispatch) as IXSLTemplate;
xform.stylesheet := doc;
end;
转换的原始源:
发布于 2013-08-19 21:27:06
我不是delphi程序员,但我经常用C++为MSXML4编写这种程序。下面是MSXML4文档中的vb代码示例,我将其简单地翻译为C++。
Dim xslt As New Msxml2.XSLTemplate40
Dim xslDoc As New Msxml2.FreeThreadedDOMDocument40
Dim xmlDoc As New Msxml2.DOMDocument40
Dim xslProc As IXSLProcessor
xslDoc.async = False
xslDoc.Load "sample.xsl"
Set xslt.stylesheet = xslDoc
xmlDoc.async = False
xmlDoc.Load "books.xml"
Set xslProc = xslt.createProcessor()
xslProc.input = xmlDoc
xslProc.addParameter "param1", "Hello"
xslProc.Transform
MsgBox xslProc.output
https://stackoverflow.com/questions/17015368
复制相似问题