MSXML — различия между версиями
Материал из Фабиус wiki
Hisava (обсуждение | вклад) м |
Hisava (обсуждение | вклад) м |
||
Строка 16: | Строка 16: | ||
</size> | </size> | ||
</config> | </config> | ||
+ | |||
+ | который имеет странное имя PurchaseOrder.xml | ||
+ | |||
+ | Для чтения этого файла будем использовать следующую программу ( delphi 10 seattle ) | ||
+ | |||
+ | unit Unit1; | ||
+ | |||
+ | interface | ||
+ | |||
+ | uses | ||
+ | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, | ||
+ | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, MSXML2_TLB, Vcl.StdCtrls; | ||
+ | |||
+ | type | ||
+ | TForm1 = class(TForm) | ||
+ | Button1: TButton; | ||
+ | procedure Button1Click(Sender: TObject); | ||
+ | private | ||
+ | { Private declarations } | ||
+ | public | ||
+ | { Public declarations } | ||
+ | end; | ||
+ | |||
+ | var | ||
+ | Form1: TForm1; | ||
+ | |||
+ | implementation | ||
+ | |||
+ | {$R *.dfm} | ||
+ | |||
+ | procedure TForm1.Button1Click(Sender: TObject); | ||
+ | var | ||
+ | XMLDoc : DOMDocument60; | ||
+ | Root : IXMLDOMElement; | ||
+ | begin | ||
+ | XMLDoc := CoDOMDocument60.Create; | ||
+ | XMLDoc.load( 'PurchaseOrder.xml' ); | ||
+ | Root := XMLDoc.documentElement; | ||
+ | |||
+ | ShowMessage( Root.selectSingleNode( 'size/width' ).text); | ||
+ | |||
+ | Root := nil; | ||
+ | XMLDoc := nil; | ||
+ | end; | ||
+ | |||
+ | end. |
Версия 22:14, 26 апреля 2016
MSXML - это библиотека Microsoft msxml6.dll
При добавлении в проект delphi этой библиотеки
Component - Import Component... - Import a Type Library
у нас появляется файл MSXML2_TLB.pas в котором описан класс CoDOMDocument60
Предположим, у нас есть XML файл
<?xml version="1.0" encoding="utf-8"?> <config> <size> <height>500px</height> <width>100px</width> </size> </config>
который имеет странное имя PurchaseOrder.xml
Для чтения этого файла будем использовать следующую программу ( delphi 10 seattle )
unit Unit1;
interface
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, MSXML2_TLB, Vcl.StdCtrls;
type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); var XMLDoc : DOMDocument60; Root : IXMLDOMElement; begin XMLDoc := CoDOMDocument60.Create; XMLDoc.load( 'PurchaseOrder.xml' ); Root := XMLDoc.documentElement;
ShowMessage( Root.selectSingleNode( 'size/width' ).text);
Root := nil; XMLDoc := nil; end;
end.