TXMLDocument
4 отговора
180 прегледа
TXMLDocument
Здрвейте,
Обработвам XML фаилове с TXMLDocument. Извиквам го от отделен unit.
Изпозвам XMLD := TXMLDocument.Create(nil). Когато се опитам да заредя XML документ ми дава exception . Ако го поставя на forma и дам XMLD := TXMLDocument.Create(form1) работи нормално , даже не е нужно да е TForm може
и друг win контрол. Това се получава само при отварянето на документ. При създаване на нов домкумент и записът му , всисчко е ОК , работи си и с nil.
Можете ли да ми помогнете? Защо се получава така?
Предварително благодаря
Обработвам XML фаилове с TXMLDocument. Извиквам го от отделен unit.
Изпозвам XMLD := TXMLDocument.Create(nil). Когато се опитам да заредя XML документ ми дава exception . Ако го поставя на forma и дам XMLD := TXMLDocument.Create(form1) работи нормално , даже не е нужно да е TForm може
и друг win контрол. Това се получава само при отварянето на документ. При създаване на нов домкумент и записът му , всисчко е ОК , работи си и с nil.
Можете ли да ми помогнете? Защо се получава така?
Предварително благодаря
Re: TXMLDocument
Ами добре е да сложиш цялата поредица код която води до грешка, за да видим къде е буболечката. Иначе погледни за всеки случай [линк]
чети и дишай по-леко
чети и дишай по-леко
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-ри вариант ???
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-ри вариант ???
Re: TXMLDocument
Аз изобщо не виждам как успяваш да заредиш данни от тоя файл , като пътя до него е грешен.
ExtractFilePath(Application.ExeName)+ '\1.xml'; <- или махни наклонената черта преди името на xml файла, или използвай ExtractFileDir. В случая ще получиш нещо от сорта на 'С:\blabla\\1.xml'
ExtractFilePath(Application.ExeName)+ '\1.xml'; <- или махни наклонената черта преди името на xml файла, или използвай ExtractFileDir. В случая ще получиш нещо от сорта на 'С:\blabla\\1.xml'
Re: TXMLDocument
Не е от "'\"
наистина трябва да я няма но и без нея не работи "тест 1"

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