tak to już jest z XML, to bardzo trudna sprawa, na prawdę, niby html jest oczywisty, ale już XML nie.
Uczyłem się tego przez kilkanaście dni, ale warto.
W tej chwili moja klasa potrafi ładować wszystko czego potrzebuję.
W Twoim przypadku gdybyś potrzebował gałąź o nr id=2 wystarczyło by:
$url = "folder/nazwa_pliku.xml?xpath=/aaa/bbb[@id='2']";
$xml_class = new xml;
$array = $xml_class->xLoad($url);
ponieważ cenię swoją pracę, nie udostępniam bezpłatnie tej klasy,
jednak dla każdego kto chce być betatesterem i używać jej na własny użytek mogę zrobić wyjątek.
oprócz czytania plików, można usuwać dane:
$url = "folder/nazwa_pliku.xml?xdelete=/aaa/bbb[@id='2']";
jeśli np chcesz zamienić dane w tej gałęzi, wystarczy dopisać dane, tak jak w metodzie GET
$url = "folder/nazwa_pliku.xml?xappend=/aaa/bbb[@id='2']&c=Aff3";
klasa umożliwia dostęp do każdego pliku w sieci, gdzie jest html/xml,
przykładowo można odczytać nazwę strony z tagów <title>:
$url = "http://www.google.pl/#?xpath=/html/head/title[.]";
Ta klasa jest częścią systemu "INVENTIO", który od kilku miesięcy rozbudowuję właśnie pod kątem obsługi danymi XML.