TXMLDocument *doc = new TXMLDocument(NULL);
doc->Active = true;
doc->Version = "1.0";
doc->Encoding = "utf-8";
_di_IXMLNode node = doc->AddChild("something");
проблемы при создании XML
Код:
После последней строки BDS2006 выдает ошибку рантайма: "Not active document".
Подскажите пожалуйста, в чем тут дело? всю голову сломал.
doc->FileName = "filename.xml";
да, указать FileName оказалось не лишним, но файл перед тем должен существовать. однако и это не спасает - при включении doc->Active = true; видимо сразу же начинает работать парсер, который видит пустой файл, считает его большим недоразумением и опять - вылет с ошибкой.
Делать doc->Active = false нельзя - тогда вообще ничего не работает.
Какие еще мысли есть у кого-нибудь?
Попробуй функции
NewXMLDocument
LoadXMLDocument
LoadXMLData
Цитата: H010d Freeze
Я сталкивался с такой бедой. TXMLDocument как-то неадекватно себя ведет, если создавать его в билдере без владельца
да, есть такое в VCL...
Попробуй создавать так, у меня в Delphi работает:
Код:
IXMLDocument doc = new TXMLDocument(NULL);
или
_di_IXMLDocument doc = new TXMLDocument(NULL);
или
_di_IXMLDocument doc = new TXMLDocument(NULL);
мне не посмотреть точное имя интерфейса в билдере.
Цитата: Phodopus
да, есть такое в VCL...
Попробуй создавать так, у меня в Delphi работает:
мне не посмотреть точное имя интерфейса в билдере.
Попробуй создавать так, у меня в Delphi работает:
Код:
IXMLDocument doc = new TXMLDocument(NULL);
или
_di_IXMLDocument doc = new TXMLDocument(NULL);
или
_di_IXMLDocument doc = new TXMLDocument(NULL);
мне не посмотреть точное имя интерфейса в билдере.
Так не прокатывает...Путаница типов. Компилер ругается и говорит, что TXMLDocument - абстрактный класс(интересно, почему он раньше об этом не вспоминал).
А вот при использовании NewXMLDocument стало получаться.
Благодарю всех за помощь...далеко не уходите :) чую, тут еще есть где возникнуть проблемам....буду копать дальше
после этого Active = true; прокатывало
Код:
//создали объект TXMLDocument
xmlPacket->XML->Clear();
xmlPacket->XML->Add("<?xml version=\"1.0\"?>");
xmlPacket->XML->Add("<packet></packet>");//создали корень
//это пример - записывайте нужный вам
xmlPacket->Active = true;
//начали работать с документом
_di_IXMLNode Packets = dml->xmlPacket->DocumentElement;
xmlPacket->XML->Clear();
xmlPacket->XML->Add("<?xml version=\"1.0\"?>");
xmlPacket->XML->Add("<packet></packet>");//создали корень
//это пример - записывайте нужный вам
xmlPacket->Active = true;
//начали работать с документом
_di_IXMLNode Packets = dml->xmlPacket->DocumentElement;
Заранее спасибо
можно. благословляю. пишите.
Цитата: kot_
можно. благословляю. пишите.
:)
да если бы я мог то наверное уже написал и спал бы как все нормальные люди в моем городе.
знак -> заменяй на точку , и убирай пустые скобки возле имен функций
ничего сложного
и := вместо =