Jak mając drzewko ip okroić je ze względu na tagi? Problem w tym, że nie na każdym poziomie te tagi są zdefiniowane.
Przykładowa gałąź drzewa:
elementA(poziom0) - elementA1(poziom1) - elementA2(poziom2)
i tylko elementA2 ma odpowiednie tagi, ale żeby otrzymać strukturę drzewka to muszą w niej pojawić się również: element A0 i elementA1 pomimo tego że nie posiadają odpowiednich tagów. Oczywiście drzewo może mieć dowolnie dużo poziomów. Jak pobrać z bazy takie przefiltrowane (okrojone do elementów z tagami + ich przodkowie konieczni dla zachowania struktury drzewa) drzewko?
Czyli trzeba podczas pobierania drzewa z bazy podczas analizowania każdego elementu drzewa sprawdzić:
- czy ma odpowiednie tagi,
- jeśli nie to czy którekolwiek z potomków posiada te tagi.
Jak to zrobić, nie używając rekurencyjnych funkcji wiele razy odpytujących bazę?
Bardzo proszę o jakieś sensowne rady, pomysły jak to zrobić.
pozdro