Форум: "Начинающим";
Текущий архив: 2007.12.09;
Скачать: [xml.tar.bz2];
ВнизXML Найти похожие ветки
← →
Nightmare (2007-11-14 15:10) [0]Здравствуйте, у меня возникли проблемы с XML.
Дело в том, что я использую для поиска параметров тэге, функцию FindNode, но если эта функция не находит нужного параметра
то тут же выдаёт сообщение с ошибкой.
Неподскажет ли кто кто-нибудь, как убрать эти сообщения???
Заранее спасибо за ответы.
← →
Reindeer Moss Eater © (2007-11-14 15:11) [1]врешь ты все
← →
Reindeer Moss Eater © (2007-11-14 15:12) [2]насчет "тут же"
← →
Nightmare (2007-11-14 15:13) [3]Reindeer Moss Eater, уж не знаю как у тебя, а меня всё именно так и происходит.
← →
Reindeer Moss Eater © (2007-11-14 15:14) [4]Судьба такая
← →
Anatoly Podgoretsky © (2007-11-14 15:14) [5]> Nightmare (14.11.2007 15:13:03) [3]
Точно врешь.
← →
Nightmare (2007-11-14 15:15) [6]Ну а поконкретней что нибудбь можно сказать
← →
Reindeer Moss Eater © (2007-11-14 15:15) [7]конечно можно. скажи.
← →
Nightmare (2007-11-14 15:15) [8]Често не вру
← →
Reindeer Moss Eater © (2007-11-14 15:16) [9]значит все же судьба
← →
Reindeer Moss Eater © (2007-11-14 15:21) [10]но если эта функция не находит нужного параметра
то есть :
if <не_нашли> then
<не_надо_ничего_делать_с_ненайденным_нодом>
← →
Anatoly Podgoretsky © (2007-11-14 15:23) [11]> Nightmare (14.11.2007 15:15:06) [6]
> Ну а поконкретней что нибудбь можно сказать
От такого слышу
← →
Nightmare (2007-11-14 15:29) [12]Вот код который выдаёт глюк если нет Тэга Left В тэге Button(Используется TXMLDocument)
var I:Integer; s:string;
begin
Xml.Create("c.xml");
For I:=1 to Xml.ChildNodes.Nodes[0].ChildNodes.Count-1 do begin
if Xml.ChildNodes.Nodes[0].ChildNodes[I].NodeName="button"
then s:=Xml.ChildNodes.Nodes[0].ChildNodes[I].ChildNodes.FindNode("Left").NodeName;
end;
showmessage(S);
← →
Johnmen © (2007-11-14 15:35) [13]
> выдаёт сообщение с ошибкой.
> выдаёт глюк
Может выдает деньги евро?
← →
Nightmare (2007-11-14 15:36) [14]Ха-Ха
← →
Reindeer Moss Eater © (2007-11-14 15:41) [15]FindNode может вернуть nil если узла нет.
и запрашивать NodeName у нила не стоит.
← →
Andrey © (2007-11-14 15:43) [16]Кстати и Nodes[0] тоже может вернуть nil...
← →
Nightmare (2007-11-14 15:46) [17]Вот что я написал, но глюк остался
var I:Integer; s:string;
begin
Xml.Create("c.xml");
For I:=1 to Xml.ChildNodes.Nodes[0].ChildNodes.Count-1 do begin
if Xml.ChildNodes.Nodes[0].ChildNodes[I].ChildNodes.FindNode("Left")<>nil
then s:="dsfsdfdgsdg";
end;
showmessage(S);
← →
Anatoly Podgoretsky © (2007-11-14 15:51) [18]
> FindNode returns the interface for the node if it is in
> the list. If NodeName or ChildNodeType does not specify
> a node in the list, FindNode returns nil (Delphi) or NULL
> (C++).
← →
Reindeer Moss Eater © (2007-11-14 15:52) [19]У тебя неправильное представление об иерархии читаемого xml документа.
← →
Anatoly Podgoretsky © (2007-11-14 15:52) [20]
> Вот что я написал, но глюк остался
Код у тебя безграмотный.
Прочитай хотя бы [16]
← →
Reindeer Moss Eater © (2007-11-14 15:53) [21]For I:=1 to Xml.ChildNodes.Nodes[0].ChildNodes.Count-1 do begin
1. Где проверка что есть узел Xml.ChildNodes.Nodes[0] ?
← →
Nightmare (2007-11-14 15:55) [22]Нет вру, всё работает немного неправильный код выложил в [17]
← →
Reindeer Moss Eater © (2007-11-14 15:55) [23]For I:=1 to Xml.ChildNodes.Nodes[0].ChildNodes.Count-1 do begin
Узлы индексируются не с единицы
← →
Nightmare (2007-11-14 15:57) [24]Да это тоже недочёт
← →
Nightmare (2007-11-14 16:05) [25]А как быть с тем случаем, когда сам xml файл написан неправильно?
← →
Reindeer Moss Eater © (2007-11-14 16:06) [26]вызывать метод загрузки и проверять результат лоада
← →
Nightmare (2007-11-14 16:09) [27]Проверял на примере с неверным закрывающим тэгом, на ниже приведённом коде. Неработает.
var I:Integer; s:string;
begin
if Xml.Create("C.xml")<>nil
then
if Xml.ChildNodes.Nodes[0].ChildNodes.FindNode("Button")<>nil
then s:="dsfsdfdgsdg";
showmessage(S);
end;
← →
Reindeer Moss Eater © (2007-11-14 16:13) [28]with TXMLDocument.Create(nil) do
try
LoadFromFile("c.xml");
.....
except
//oops....
end;
← →
Nightmare (2007-11-14 16:21) [29]Хм... Заработало.
Спасибо.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.12.09;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.054 c