odczyt XML

0

Witam

Jak wczytac plik XML do komponenty TreeView pod D7 ? Jak mozna odczytac komponentem XMLDocument poszczegolne znaczniki (nazwy, wartosci itp)?

pozdrowienia
[email protected]

0

akurat jest to bardzo skomplikowane zagadnienie. obecnie się męczę właśnie z TXMLDocument i powiem jedno - w pomocy jest wszystko, tylko czasami trudno to znaleźć.

0

niestety wiem ze latwo to nie jest, a mozesz dac wiecej namiarow gdzie w pomocy to znalazles? bo w wersji ktora ja mam nie ma za duzo, a wrecz pisze ze nie ma w ogóle w tej wersji ktora posiadam a mam wersje PRO

0

dziwne, ja nacisnąłem po prostu F1 i miałem opisane wszystkie procedurki tego komponentu (są w VCL Reference) - i z tego się dało wywniosokować stosunkowo sporo. Wiem na pewno, że cały komponent opiera się na interfejsach IXMLNode. I one posiadają to co jest najważniejsze, np.:

function GetAttribute(const AttrName: DOMString): OleVariant; - nazwa atrybutu tj. tego co jest np. tutaj: <test id="as"></test> to poda nam id.
IXMLNode zawiera też parę właściwości interesujących, np:

Text - zwraca to co jest pomiędzy znacznikami, np. dla <test>XML</test> zwróci nam "XML"

ChildNodes - "dzieci" aktualnego drzewka jako IXMLNodeList, a on ma właściwości:

ChildNodes.Count - liczba "dzieci"
ChildNodes.Nodes[index] - dostęp do dziecka o podanym indeksie

to oczywiście nie jest wszystko, tylko to co jest najważniejsze. Możę jakiś art o tym skrobnę? warto jest pobawić się metodą prób i błędów i dojść jak co działa :)

PS. Ja mam Delphi 6 Ent i to wszystko w pomocy znalazłem

0

Witam

Dzieki za odpowiedz, bardzo sie przydala. Miales racje co do pomocy tylko, ze u mnie o komponencie nie ma wlasciwie nic co moznaby wykorzystac, wiecej jest o XMLNode czy jakos tak.

Jesli chodzi o wczytanie pliku XML do TreeView to zaden problem, po prostu ladujemy go do TreeView! Jest polecenie w tym komponencie LoadFromFile. Jest male ale, jesli plik XML ma puste linie to wychodza krzaki ale mozna to latwo obejsc, najpierw plik XML do ListBox, usuwamy puste linie, zapisujemy i odczytujemy w TreeView.

Na poczatku chodzilo mi o wczytanie do TreeView ale po twojej odpowiedzi i znalezieniu kilku przykladow na zagranicznych stronach zrobilem to podobnie jak ty wiec jeszcze raz dzieki.

PS. WESOLYCH SWIAT!

0

ListBox? Do takich rozwiązań polecam TStringList :-P

0

mozna i tak, chociaz StringList'a jeszcze nie obczailem

0

mozna i tak, chociaz StringList'a jeszcze nie obczailem

Jeśli obczaiłeś listboxa, to stringlista też, bo listbox się na nim opiera. Jedyne, czego nie trzeba robić w listobxie, a w stringliście trzeba, to stworzenie obiektu (tstringlist.create), ale to chyba logiczne.

1 użytkowników online, w tym zalogowanych: 0, gości: 1