Mam następujący problem: piszę program obsługujący pliki XML, które będzie mógł edytować każdy użytkownik, dlatego zależy mi na dobrej obsłudze błędów podczas wczytywania wartości z plików XML przez program.
Powiedzmy że mam taki kod:
- Kod: Zaznacz cały
AnsiString Test;
Form1->XMLDocument1 = new TXMLDocument(Form1);
Form1->XMLDocument1->Name = "Configuration";
Test = Form1->XMLDocument1->DocumentElement->ChildNodes->FindNode("Settings")->ChildNodes->FindNode("JakiesUstawienie")->NodeValue;
I teraz jeśli np: nie będzie istniał Node "JakiesUstawienia" to program wywali błąd i na tym skończy się zabawa. Można to rozwiązać poprzez porównanie Node'a do NULL:
- Kod: Zaznacz cały
if (Form1->XMLDocument1->DocumentElement->ChildNodes->FindNode("Settings")->ChildNodes->FindNode("JakiesUstawienie") != NULL)
Program znajdzie wtedy błąd i będzie możliwe ominięcie pojawienia się okienka informującego o błędzie, ale nie wtedy, gdy np: nie będzie istniał poprzedni Node, w tym przypadku "Settings".
Musiałbym więc sprawdzać poprzedni, poprzedni i tak dłuugo, jeśli nastąpi taka potrzeba.
Czy ma ktoś pomysł, jak powinna wyglądać funkcja sprawdzająca istnienie wszystkich Node'ów, żebym nie musiał pisać kilku bezsensownych linijek przez próbą wczytania każdej wartości z pliku XML?