我怎么能问IXMLDOMDocument2是什么版本的 MSXML?给定一个IXMLDOMDocument2我需要创建另一个相同版本的文档。
如果你从不同版本的 MSXML 中给出一个 IXMLDOMDocument,你会从 msxml 中得到一个异常:
混合来自不同版本的 MSXML 的对象是错误的。
微软内部可以询问接口它来自哪个版本的 MSXML,我需要访问相同的东西。
考虑以下用伪代码编写的假设函数:
String XMLTransform(IXMLDOMNode xml, String xsl)
{
//Create a document to hold the xml
IXMLDOMDocument2 xslDocument = new CoDOMDocument();
//load the xsl string into the xsl dom document
xslDocument.loadXML(xsl);
//transform the xml
return xml.transformNode(xslDocument);
}
问题是,如果 IXMLDOMNode 来自,比如MSXML6。创建DOMDocument
的是版本 3(因为 Microsoft 在 MSXML 中的版本依赖性)。这将导致
xml.transformNode()
抛出 COM 异常:
It is an error to mix objects from different versions of MSXML.
既然微软能够询问一个接口它来自哪个版本的 MSXML,我应该能够做同样的事情,但是怎么做呢?
或者,给定一个IXMLDOMNode
,我如何构造一个XMLDOMDocument
相同版本的对象......