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.