![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TXMLDocument [D7, XP]
DimOk © (2007-09-05 11:26:00)Добрый день уважаемые мастера. Подскажите пожалуйсто, что я не так делаю. Есть XML документ мне нужно получить атрибут первого узла
- <Data dateFirst="02.05.2007 10:57:40" dateLast="02.05.2007 10:57:47" NumMag="131611">
- <doc numdoc="000892" typedoc="В/П" sclad="МZ0211" agentcode="МZ0101" date="02.05.2007" dopcode="082670" codeval="USD" cenaval="1" code_cart="" prim="">
<table nnum="63230179" kol="1" cena="326,1" cenaout="321,48" />
</doc>
- <doc numdoc="000654" typedoc="ПРН" sclad="МZ0101" agentcode="00000А" date="02.05.2007" dopcode="" codeval="USD" cenaval="1" code_cart="" prim="">
<table nnum="61120519" kol="1" cena="289,7067" cenaout="249,87" />
код в Delphi:
procedure load_to_1C_app();
var XMLFile: TXMLDocument;
value: Variant;
node: IXMLNode;
begin
XMLFile := TXMLDocument.Create('C:\Выгрузка.xml');
value := XMLFile.ChildNodes.First.GetAttribute('dateFirst');
......
после выполнения подчеркнутой строчки выдает ошибку:
Abstract Error
В чем может быть дело? За ранее всем благодарен.
DimOK (2007-09-05 12:42:00) [21]
> Я же тебе показал что делает конструктор.
Понятно, но
XMLFile := TXMLDocument.Create('C:\Выгрузка.xml');
XMLFile.LoadFromFile('C:\Выгрузка.xml'); // Вылетает ошибка RUNTime опять.
Reindeer Moss Eater (2007-09-05 12:38:00) [22]Все давно уже показано еще в самом вопросе
novill (2007-09-05 12:36:00) [23]код показывай.
Reindeer Moss Eater (2007-09-05 12:36:00) [24]Я же тебе показал что делает конструктор.
DimOK (2007-09-05 12:35:00) [25]
> И в исходники смотреть - не царское это дело
Instantiates a TXMLDocument object.
Delphi syntax:
constructor Create(const AFileName: DOMString); reintroduce; overload;
Это из справки.....
DimOK (2007-09-05 12:31:00) [26]
> а у тебя файл точно открывается?
> попробуй из него хоть что-то получить. например, сам текст
> хмл.
В отладчике:
XMLFile := TXMLDocument.Create('C:\Выгрузка.xml');
XMLFile = ([csInheritable]) - не зная что это значит. А ShowMessage(XMLFile.XML.Text) выдает ошибку RUNTime
Reindeer Moss Eater (2007-09-05 12:31:00) [27]И в исходники смотреть - не царское это дело
constructor TXMLDocument.Create(const AFileName: DOMString);
begin
inherited Create(nil);
FFileName := AFileName;
end;
И все.
Никаких намеков на загрузку самого документа
Reindeer Moss Eater (2007-09-05 12:29:00) [28]XMLFile.ChildNodes.First тоже nil
Но тебе же на это по барабану. Ты ничего не проверяешь.
novill (2007-09-05 12:26:00) [29]а у тебя файл точно открывается?
попробуй из него хоть что-то получить. например, сам текст хмл.
DimOK (2007-09-05 12:24:00) [30]
> XMLFile.DocumentElement возврощаят nil
И XMLFile.ChildNodes.First тоже nil
DimOK (2007-09-05 12:22:00) [31]
> Проверять надо
XMLFile.DocumentElement возврощаят nil
Reindeer Moss Eater (2007-09-05 12:19:00) [32]Проверять надо
DimOK (2007-09-05 12:17:00) [33]
> Строишь трехколенный вызов, и абсолютно уверен, что все
> они возвращают валидные элементы.
Как правильно то...?
Reindeer Moss Eater (2007-09-05 12:14:00) [34]Понятно, что будет плохо.
Строишь трехколенный вызов, и абсолютно уверен, что все они возвращают валидные элементы.
DimOK (2007-09-05 12:12:00) [35]
> Суть в том, что ты ломишься не к тому узлу, к которому хотел.
Понятно. Я и ChildNodes['Data'].GetAttribute('dateFirst'); но все так же....(плохо)
Reindeer Moss Eater (2007-09-05 12:02:00) [36]Суть в том, что ты ломишься не к тому узлу, к которому хотел.
DimOK (2007-09-05 12:00:00) [37]
> ShowMessage(XMLFile.ChildNodes.First.NodeName);
Тоже самое, но я думаю что дело в том что нет XMLFile.Active := True;
Добавил.... и теперь вообще что то не понятное. Ошибка Access violation at address 00000000 и т.п.......
Reindeer Moss Eater (2007-09-05 11:50:00) [38]А вот это посмотри:
ShowMessage(XMLFile.ChildNodes.First.NodeName);
DimOK (2007-09-05 11:40:00) [39]
> XMLFile.DocumentElement...
value := XMLFile.DocumentElement.GetAttribute('dateFirst');
Если это так, то такая же ошибка :(
palva (2007-09-05 11:34:00) [40]XMLFile. DocumentElement...