Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.06.11;
Скачать: [xml.tar.bz2];

Вниз

Проблемка с 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.014 c
3-1145431067
qazwsx
2006-04-19 11:17
2006.06.11
Коннектор к мускулу


4-1142616099
Наиль
2006-03-17 20:21
2006.06.11
Как узнать имя альтернативного потока данных NTFS?


15-1147860109
ЛшдлуттнСфе
2006-05-17 14:01
2006.06.11
Гаубица. Возможное и невозможное.


15-1147857726
Cashmare
2006-05-17 13:22
2006.06.11
Учиться, учиться и учиться!


15-1147795541
TUser
2006-05-16 20:05
2006.06.11
Наместник Императора :)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский