MSXML — различия между версиями

Материал из Фабиус wiki
Перейти к: навигация, поиск
м
м
Строка 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.