當Delphi 7發佈時,MSXML 6.0不存在。是否可以將Delphi的TXML文檔配置爲使用MSXML 6.0而不是舊版本?如何在Delphi 7中使用MSXML 6.0創建TXML文檔?
3
A
回答
10
下面的代碼添加到一個單位名稱uMSXMLVersion或您選擇的名稱,並將其添加到您的項目中使用
{----------------------------------------------------------------------------
Set Delphi's XMLDocument to use MSXML v6.0
Usage: Include unit in project "uses"-list and Delphi will automatically use
MSXML v6.0 for TXmlDocument.
-----------------------------------------------------------------------------}
unit uMSXMLVersion;
interface
implementation
uses ActiveX, MSXML, MSXMLDOM;
function CreateDOMDocumentEx: IXMLDOMDocument;
const
CLASS_DOMDocument60: TGUID = '{88D96A05-F192-11D4-A65F-0040963251E5}';
begin
Result := nil;
if CoCreateInstance(CLASS_DOMDocument60, nil, CLSCTX_INPROC_SERVER or
CLSCTX_LOCAL_SERVER, IXMLDOMDocument, Result) <> S_OK then
Result := CreateDOMDocument; //call the default implementation
end;
initialization
MSXMLDOMDocumentCreate := CreateDOMDocumentEx;
end.
8
的msxmldom.pas
單元暴露了公共MSXMLDOMDocumentCreate
鉤,你可以指定一個自定義的處理程序,例如, :
uses
..., msxmldom;
const
CLASS_DOMDocument60: TGUID = '{88D96A05-F192-11D4-A65F-0040963251E5}';
function CreateMSXML6Document: IXMLDOMDocument;
var
Disp: IDispatch;
begin
OleCheck(CoCreateInstance(CLASS_DOMDocument60, nil, CLSCTX_INPROC_SERVER or CLSCTX_LOCAL_SERVER, IDispatch, Disp));
Result := Disp as IXMLDOMDocument;
if not Assigned(Result) then
raise DOMException.Create('MSXML 6.0 Not Installed');
end;
initialization
msxmldom.MSXMLDOMDocumentCreate := CreateMSXML6Document;
+0
我現在這樣做了。 –
+1
感謝您的回答。我真的認爲你的代碼比Fritz Deelman的代碼好一點,但他之前回答了。 – neves
相關問題
- 1. 如何在Delphi中創建一個使用TXML文檔的XML文件7
- 2. 使用MSXML的XPath Delphi
- 3. 如何在Delphi中使用MSXML SAX大的XML文件合併
- 4. 如何在Delphi 7中使用chm?
- 5. 幫助創建GPX文件用Delphi 7
- 6. Delphi 7使用由VB.net創建的.DLL
- 7. 如何在delphi中創建xml文件
- 8. Delphi 7關閉DDP文件的創建
- 9. 如何在不使用MSXML的情況下在Delphi中使用XSD驗證XML?
- 10. Delphi 7 - 如何使用Inputbox
- 11. 快速清除MSXML文檔或重新創建?
- 12. 如何在Delphi 7中使用delphi製作com界面
- 13. 如何使用Microsoft.Office.Interop.Word創建.docx文檔?
- 14. 如何使用XmlDocument創建XML文檔?
- 15. 如何使用Java創建JSON文檔?
- 16. 使用Textfile中的文件創建7-Zip存檔 - Powershell
- 17. 如何在VB 6.0中創建DLL
- 18. Delphi XE3,如何設置MSXML MaxElementDepth以允許讀取深層的XML文檔
- 19. 如何創建在delphi
- 20. 如何在html文檔中使用鈦api創建文本框
- 21. 使用HttpClient在BaasBox中創建文檔?
- 22. 使用node.js在arangoDB中創建文檔
- 23. 在Javascript中使用CMIS創建文檔
- 24. 如何從MSXML DOM創建XML
- 25. 嘗試使用TZDB ...如何在delphi 7
- 26. 使用eclipse創建文檔?
- 27. 如何在Ant中創建「here文檔」?
- 28. 如何在.Net中創建ODS文檔
- 29. 如何在.NET中創建OpenOffice文檔
- 30. 如何在iCloud Drive中創建文檔?
重新分配函數的好方法。我不知道你可以在Delphi中使用這種動態的語言技巧。甚至比這更好的是,創建我正在使用的遺留代碼的人也不知道這個技巧:-) – neves
[致命錯誤] uMSXMLVersion.pas(13):文件未找到:'MSXML.dcu'in Delphi 7個人版。我錯過了什麼? – Slappy