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

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

Пример создания 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>');
e := d.documentElement;
e.setAttribute('noNamespaceSchemaLocation', 'ДОХОД_2НДФЛ_01.xsd');
) а в оригинале должно быть <НДФЛ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С для создания этой строки используется код: хмлКорень.УстановитьПространствоИмен(" 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);


Наверх

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