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

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

Проблемка с XML-файлом


zhegulov ©   (2006-05-02 15:49:00) 

На Delphi2005 пишу код для формирования xml-файла:

Form1.XMLDocument2.Active:=True;
Form1.XMLDocument2.Encoding:='windows-1251';
Form1.XMLDocument2.AddChild('Packet');
Form1.XMLDocument2.ChildNodes[1].Attributes['xmlns']:='v1.1';
Form1.XMLDocument2.ChildNodes[1].Attributes['EDNo']:='11';
Form1.XMLDocument2.ChildNodes[1].Attributes['EDDate']:='22';
Form1.XMLDocument2.ChildNodes.Nodes[1].AddChild('ED101');
Form1.XMLDocument2.ChildNodes.Nodes[1].ChildNodes[i].Attributes['EDNo']:='11';
Form1.XMLDocument2.ChildNodes.Nodes[1].ChildNodes[i].Attributes['EDDate']:='22';
итд...

В итоге получаю такой файл:

<?xml version="1.0" encoding="windows-1251"?>
<Packet xmlns="v1.1" EDNo="11" EDDate="22" >
 <ED xmlns="" EDNo="11" EDDate="22" >
 </ED>
</Packet>

Проблема в том что в элементе ED проставляется ненужный аттрибут xlmns="". Я его нигде не задаю и где нужно указать чтобы он не формировался не знаю. На другой машине где не установлены  Delphi все формируется нормально без xmlns="".
Подскажите пожалуйста как и где настроить чтобы и на моей машине нормально формировалосью Может в компоненте какие параметры задать. Очень прошу помощи, а то замучился совсем.


abasheev   (2006-05-04 14:25:00) [1]

Всем спасибо.
Кое как нашел.
Просто, я чайник совсем.

Добавил CoInitialize(nil) перед работой с классом.
И, оказывается, это фигнюшечка находится в библиотеке ActiveX. Соответственно, добавил это стремное слово в uses


Reindeer Moss Eater   (2006-05-04 13:30:00) [2]

Добавить вызов, который еще has not been called.


abasheev   (2006-05-04 12:24:00) [3]

цитирую:
Project Project1.exe raised exception class EOleSysError with message 'CoInitialeze has not been called'. Process stoped.

что мне сделать?
что надо добавить?


Плохиш   (2006-05-04 10:58:00) [4]


> abasheev   (04.05.06 10:50) [8]
> Что делать?
> говорит, что не может запустить или не запущена CoInitialize

Для начала нужно приобрести словарь, что бы точно узнать "не может" или "не запущена". После вставить в программу вызов функции CoInitialize перед всей обработкой и после обработки - CoUninitialize.


Reindeer Moss Eater   (2006-05-04 10:58:00) [5]

.. говорит, что не может запустить или не запущена CoInitialize

А ты конечно же не согласен запускать CoInitialize ни в какую.


abasheev   (2006-05-04 10:50:00) [6]

Что делать?
написал програмульку, которая создаёт ХМЛ документ и созраняет его в файл. при компилировании все отлично, но программа не работает
говорит, что не может запустить или не запущена CoInitialize

program Project1;
{$APPTYPE CONSOLE}

uses
SysUtils, XMLDoc, XMLIntf;

var XMLfile: IXMLdocument;
  iNode: IXMLNode;
begin
{ TODO -oUser -cConsole Main : Insert code here }

XMLfile := TXMLDocument.Create(nil);
XMLfile.Active:=true;

iNode:= XMLfile.AddChild('quiz'); //nachalo bloka zadaniy

XMLfile.SaveToFile('tsk.xml');
end.


Reindeer Moss Eater   (2006-05-03 14:05:00) [7]

Да везде использую абсолютные индексы.
Тогда тебе нужны тренировки по арифметике. Подсчет предметов с помощью палочек.


REA   (2006-05-03 11:13:00) [8]

While not understand Do [1]


Плохиш   (2006-05-03 10:45:00) [9]


> Ладно чуть сократил код не буду всю программу сюда толкать.
>  Сам смысл вопроса что не понятен?

Т.е. ты предлагаешь погадать, что же у тебя там твориться? Ну что ж, пойду капучино заварю.


zhegulov   (2006-05-03 08:13:00) [10]

То Плохиш. Ладно чуть сократил код не буду всю программу сюда толкать. Сам смысл вопроса что не понятен?
То Reindeer. Да везде использую абсолютные индексы.
Ну что не кто не поможет.


Reindeer Moss Eater   (2006-05-02 17:21:00) [11]

Кому поручают новые форматы электронных платежей. Жуть!
:)


Плохиш   (2006-05-02 17:13:00) [12]


> zhegulov   (02.05.06 15:49)

Тут вообще итоговый файл не соответствует приведённому коду

> Form1.XMLDocument2.ChildNodes.Nodes[1].AddChild( 'ED101');


>  < EDxmlns="" EDNo="11" EDDate="22" >


Reindeer Moss Eater   (2006-05-02 17:03:00) [13]

Видимо ты запутался в трех соснах.
AddChild это функция, которая возвращает IXMLNode.
А ты это возвращаемое значение нигде не используешь, полагаясь на абсолютные индексы нодов.


Наверх

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