我有一些使用 Delphi 的 TXMLDocument 类的工作代码,并使用 TransformNode 方法执行 XSLT 翻译。
但是,我需要启用 XSLT Javascript 函数(<msxml:script>
标签)并且 - 经过大量谷歌搜索 - 这意味着我需要将AllowXsltScript
属性设置IXMLDOMDocument2
为 true。
http://msdn.microsoft.com/en-us/library/windows/desktop/ms760290(v=vs.85).aspx
我已经成功地实现了这一点——但只能通过CreateDOMDocument
在msxmldom.pas
.
function CreateDOMDocument: IXMLDOMDocument;
var doc :IXMLDOMDocument2;
begin
doc := TryObjectCreate([CLASS_DOMDocument60, CLASS_DOMDocument40, CLASS_DOMDocument30,
CLASS_DOMDocument26, msxml.CLASS_DOMDocument]) as IXMLDOMDocument2;
if not Assigned(doc) then
raise DOMException.Create(SMSDOMNotInstalled);
doc.setProperty('AllowXsltScript', true); // Allow XSLT scripts!!
Result := doc;
end;
显然这远远不能令人满意 - 那么如何在不修改库代码的情况下访问 IXMLDOMDocument2 对象?