Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Разбор XML [D7, WinXP]


Grafsky ©   (2004-12-19 09:14:00) 

Привет всем!
Не подскажете библиотеки (или может есть стандартные ср-ва) для разбора XML файлов. Спасибо.


Darlock   (2004-12-28 17:43:00) [1]

Действительно прокатило, спасибо.
Пример кода как читать XML файл:

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, xmldom, XMLIntf, {xercesxmldom,} XMLDoc, msxmldom, ComCtrls,
 StdCtrls, ExtCtrls;

type
 TForm1 = class(TForm)
   btnRefreshClick: TButton;
   lv: TListView;
   XMLDoc: TXMLDocument;
   procedure btnRefreshClickClick(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btnRefreshClickClick(Sender: TObject);
var
ADPLocalFile : TFileName;
StartItemNode : IXMLNode;
ANode : IXMLNode;
STitle, sDesc, sLink : OleVariant;
lvi: TListItem;

vComplex, vCell :IXMLNode;
//<comb num="1" cscore="769320" cname="JORN" home="0" uname="merger77" race="1"/>
vComplexNumber: String;
vComplexRing: String;
vComplexRingName: String;
vComplexGate: String;

vCellNum: String;
vCellScore: String;
vCellName: String;
vCellUserName: String;
vCellHome: String;
vCellRace: String;
vCellAlliance: String;

begin

lv.Clear;
XMLDoc.FileName := 'test.xml';
XMLDoc.Active := True;
vComplex := XMLDoc.DocumentElement;
vComplexNumber := VarToStr(vComplex.Attributes['number']);
vComplexRing := VarToStr(vComplex.Attributes['ring']);
vComplexRingName := VarToStr(vComplex.Attributes['ringname']);
vComplexGate := VarToStr(vComplex.Attributes['gate']);

vCell := XMLDoc.DocumentElement.ChildNodes.First;
ANode := vCell;

while Assigned(ANode) do begin
 vCellNum := VarToStr(ANode.Attributes['num']);
 vCellScore := VarToStr(ANode.Attributes['cscore']);
 vCellName := VarToStr(ANode.Attributes['cname']);
 vCellHome := VarTostr(ANode.Attributes['home']);
 vCellUserName := VarToStr(ANode.Attributes['uname']);
 vCellRace := VarToStr(ANode.Attributes['race']);
 vCellAlliance := VarToStr(ANode.Attributes['alliance']);

 with LV.Items.Add do begin
   Caption := (vComplexNumber);
   SubItems.Add(vComplexRing);
   SubItems.Add(vComplexRingName);
   SubItems.Add(vComplexGate);
   SubItems.Add(vCellNum);
   SubItems.Add(vCellScore);
   SubItems.Add(vCellName);
   SubItems.Add(vCellHome);
   SubItems.Add(vCellUserName);
   SubItems.Add(vCellRace);
   SubItems.Add(vCellAlliance);
 end;

 ANode := ANode.NextSibling;
end; //while
end;

end.


Algol   (2004-12-28 17:36:00) [2]

<?xml version="1.0" encoding="windows-1251"?>


Darlock   (2004-12-28 17:18:00) [3]

Пример уже не нужен, разобрался, а вот с кодировкой русской све еще проблемы


Darlock   (2004-12-28 15:44:00) [4]

У меня допустим TXMLDocument валится с ошибкой когда на вход ему подается XML файл с тегом содержащим значения на русском языке.
П.С. А пример использоваия TXMLDocument  можно?


Grafsky   (2004-12-19 20:02:00) [5]

Жаль. Но все равно, спасибо. Будем искать


VMcL   (2004-12-19 19:33:00) [6]

>> Grafsky  (19.12.04 12:45) [3]

Не знаю. У меня нет 7-го Delphi.


Grafsky   (2004-12-19 12:45:00) [7]

VMcL: в 5 делфи я так и делал, а где его взять в 7-м?


VMcL   (2004-12-19 09:20:00) [8]

Закладка Internet: TXMLDocument
?


Polevi   (2004-12-19 09:19:00) [9]

ms xml parser


Наверх

Титульная страница Поиск, карта сайта Написать письмо