Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.11;
Скачать: CL | DM;

Вниз

Проблемка с XML-файлом   Найти похожие ветки 

 
zhegulov   (2006-05-02 15:49) [0]

На 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="".
Подскажите пожалуйста как и где настроить чтобы и на моей машине нормально формировалосью Может в компоненте какие параметры задать. Очень прошу помощи, а то замучился совсем.


 
Reindeer Moss Eater ©   (2006-05-02 17:03) [1]

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


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


> zhegulov   (02.05.06 15:49)

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

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


>  <ED xmlns="" EDNo="11" EDDate="22" >


 
Reindeer Moss Eater ©   (2006-05-02 17:21) [3]

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


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

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


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


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

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


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

While not understand Do [1]


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

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


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

Что делать?
написал програмульку, которая создаёт ХМЛ документ и созраняет его в файл. при компилировании все отлично, но программа не работает
говорит, что не может запустить или не запущена 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.


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


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

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


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

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

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


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

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

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


 
Reindeer Moss Eater ©   (2006-05-04 13:30) [12]

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


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

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

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



Страницы: 1 вся ветка

Текущий архив: 2006.06.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.04 c
2-1148550915
Alpine
2006-05-25 13:55
2006.06.11
Вопрос по генераторам


2-1148290948
WebSqlNeederr
2006-05-22 13:42
2006.06.11
У меня есть поиск логинов по memo как это сделать через БД?


2-1148235527
Василий Алибабаевич
2006-05-21 22:18
2006.06.11
работа со строкой


15-1147166720
Der Nechk@ssoff
2006-05-09 13:25
2006.06.11
Засиделся...


2-1148369558
Neo Trinitron
2006-05-23 11:32
2006.06.11
Destroy компонента при TForm.Free