首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >IXSLTemplate (MSXML 6) -如何解析xsl:import

IXSLTemplate (MSXML 6) -如何解析xsl:import
EN

Stack Overflow用户
提问于 2013-06-09 23:56:41
回答 1查看 863关注 0票数 2

我正在通过COM使用mxsml 6来执行转换。源样式表有一个xs:import语句,我知道如何包含它,但是我如何告诉MSXML这样做呢?我似乎找不到地方让IXSLTemplate加载解析的源代码

详细信息:

  • 我得到的错误是“系统无法找到指定的对象”。
  • 在源文档上设置ResolveExternals = true
  • 我正在尝试执行示意图验证。
  • 我正在使用Delphi,所以使用msxml似乎是我唯一的选择。
  • 我在服务器环境中拥有内存中的所有内容,所以我非常希望避免不得不使用文件。

代码:

代码语言:javascript
运行
复制
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;

转换的原始源:

EN

回答 1

Stack Overflow用户

发布于 2013-08-19 21:27:06

我不是delphi程序员,但我经常用C++为MSXML4编写这种程序。下面是MSXML4文档中的vb代码示例,我将其简单地翻译为C++。

代码语言:javascript
运行
复制
 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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17015368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档