TXMLDocument

4 отговора 180 прегледа
#1

TXMLDocument

Здрвейте,

Обработвам XML фаилове с TXMLDocument. Извиквам го от отделен unit.
Изпозвам XMLD := TXMLDocument.Create(nil). Когато се опитам да заредя XML документ ми дава exception . Ако го поставя на forma и дам XMLD := TXMLDocument.Create(form1) работи нормално , даже не е нужно да е TForm може
и друг win контрол. Това се получава само при отварянето на документ. При създаване на нов домкумент и записът му , всисчко е ОК , работи си и с nil.
Можете ли да ми помогнете? Защо се получава така?

Предварително благодаря

Отговор
в отговор на goro #2

Re: TXMLDocument

Ами добре е да сложиш цялата поредица код която води до грешка, за да видим къде е буболечката. Иначе погледни за всеки случай [линк]

чети и дишай по-леко
Отговор
в отговор на Pechenia #3

Re: TXMLDocument

Тест 1:

procedure TForm1.Button1Click(Sender: TObject);
Var XMLDoc:TXMLDocument;
begin
XMLDoc := TXMLDocument.Create(nil) ;
try
XMLDoc.LoadFromFile(ExtractFilePath(Application.ExeName)+ '\1.xml');
XMLDoc.Active := True;
ShowMessage(XMLDoc.DocumentElement.NodeName);
XMLDoc.Active := False;
finally
XMLDoc := nil;
end;
end;

Тест 2:

procedure TForm1.Button2Click(Sender: TObject);
Var XMLDoc:TXMLDocument;
c:TControl;
begin
c := TControl.Create(nil);
XMLDoc := TXMLDocument.Create(c) ;
try
XMLDoc.LoadFromFile(ExtractFilePath(Application.ExeName)+ '\1.xml');
XMLDoc.Active := True;
ShowMessage(XMLDoc.DocumentElement.NodeName);
XMLDoc.Active := False;
finally
XMLDoc := nil;
end;
end;

При мен работи само 2-ри вариант ???

Отговор
в отговор на goro #4

Re: TXMLDocument

Аз изобщо не виждам как успяваш да заредиш данни от тоя файл , като пътя до него е грешен.
ExtractFilePath(Application.ExeName)+ '\1.xml'; <- или махни наклонената черта преди името на xml файла, или използвай ExtractFileDir. В случая ще получиш нещо от сорта на 'С:\blabla\\1.xml'

Отговор
в отговор на ChickenShit #5

Re: TXMLDocument

Не е от "'\"
наистина трябва да я няма но и без нея не работи "тест 1"


Отговор