![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Разбор 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