![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Пример создания XML файла [D7, WinXP]
ancot © (2006-02-10 20:35:00)Всем доброго вечера. Есть у меня программа по расчету зарплаты, в ней формируется форма 2 НДФЛ в виде текстого файла. С 2005 года этот файл формируется в формате XML .
С XML столкнулся впервые. Пока только подключил usesMSXML2_TLB. Может кто подскажет простейший пример создания XML файла и как добавить в него значения.
ancot (2006-02-15 23:32:00) [1]Всем спасибо все давно получилось. Осталась одна проблема: в моем xml файле вторая строка выглядит так
<НДФЛ2 noNamespaceSchemaLocation="ДОХОД_2НДФЛ_01.xsd">
(это я сделал с при помощи
d.loadXML('<?xml version="1.0" encoding="windows-1251"?<НДФЛ2></НДФЛ2>');) а в оригинале должно быть <НДФЛ2 xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ДОХОД_2НДФЛ_01.xsd">причем кусок текста ( xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance") при просмотре подсвечивается красным цветом. Что я забыл ? (в 1С для создания этой строки используется код:
e := d.documentElement;
e.setAttribute('noNamespaceSchemaLocation', 'ДОХОД_2НДФЛ_01.xsd');хмлКорень.УстановитьПространствоИмен(" http://www.w3.org/2001/XMLSchema-instance", "xsi")(" http://www.w3.org/2001/XMLSchema-instance", "xsi");
antoxa2005 (2006-02-12 09:51:00) [2]А может быть обратиться в ... и спросить а какого каждый год новые программы, стандатры и форматы, а результат НУЛЕВОЙ?
palva (2006-02-11 09:54:00) [3]Defunct © (10.02.06 23:47) [5]
Спасибо, попробую.
Defunct (2006-02-10 23:47:00) [4]> palva
Проблем с русским шрифтом не будет если копировать из Delphi с выбранной русской раскладкой.
palva (2006-02-10 23:42:00) [5]Ну вот, опять проблема с русскими буквами! Ну вы поняли.
palva (2006-02-10 23:40:00) [6]А вообще лучше сделать с другого конца, чтобы русская Windows 1251 поддеживалась.
procedure TForm1.FormCreate(Sender: TObject);
var
d: TDomDocument;
e, c: IXmlDomElement;
i: Integer;
begin
d := TDomDocument.Create(nil);
d.loadXML('');
e := d.documentElement;
for i := 1 to 10 do begin
c := d.createElement('ITEM');
c.text := 'òåêñò' + IntToStr(i);
e.appendChild(c);
end;
d.save('fl_name.xml');
end;
palva (2006-02-10 23:02:00) [7]Ну теперь надо данными заполнить. Типа так:
uses MSXML_TLB;
procedure TForm1.FormCreate(Sender: TObject);
var
d: TDomDocument;
e, c: IXmlDomElement;
i: Integer;
begin
d := TDomDocument.Create(nil);
e := d.createElement('ROOT');
c := d.createElement('ITEM');
e.text := 'text1';
for i := 1 to 10 do begin
c := d.createElement('ITEM');
c.text := 'item' + IntToStr(i);
e.appendChild(c);
end;
d.documentElement := e;
d.save('fl_name.xml');
end;
ancot (2006-02-10 20:44:00) [8]Файл я все таки создал, но соответственно пустой:
xml := CoFreeThreadedDOMDocument.Create;
xml.async := false;
xml.save(fl_name);