Jakie są dostępne opcje, najlepiej w Javie?Język zapytań drzewa dla drzew obiektów w pamięci?
Widziałem JXPath który rozciąga XPath do obiektów. Czy jest coś jeszcze?
edit: przez język zapytań drzewo, mam na myśli język, który może tworzyć wyrażenia, które pasują do obiektów (przez jakiegokolwiek mienia), które zostały zorganizowane w drzewo.
Edit2: Przykład:
Powiedzmy mam drzewo z tych obiektów:
public interface Node {
String getName();
int getValue();
String getSomeOtherAttribute();
List<Node> getChildren();
Node getParent();
}
Teraz wyobraź sobie hierarchię tych. To, czego szukam, jest czymś, co może wyszukiwać instancje w tym drzewie. Takie jak „Daj mi wszystkie instancje węzła, w którym nazwa to«bar», wartość jest mniejsza niż 100, a rodzic jest«foo»i rodzic rodzica jest«Joe». Wszystko to w ładnym językiem zwięzłym.
Jak powiedziałem, JXPath jest jedną z opcji. Patrząc na innych. nie znalazłem żadnego.
BTW, myślę zapytanie JXPath będzie wyglądać jak "// Joe/foo/bar [@value < 100]" (czy coś takiego)
someroot
|
joe
/| \
c d foo
/\
f bar,99
Proszę wyjaśnić, co chcesz osiągnąć za pomocą tego języka zapytań. Istnieje wiele opcji, które pomogłyby poznać twoje wymagania. –
Jak mówi Michael Slade, Twój przypadek użycia określi, co będzie dla ciebie lepsze. Na przykład, JSoup ma wiele narzędzi do pracy z HTML, ale zakłada * wszystko * z czym pracuje jest HTML i nie jest odpowiednie dla większości XML (a drzewa mogą być wyrażone na wiele innych sposobów). – bdares
Interesujący problem, ale dlaczego potrzebny jest do tego "język"? Wystarczy napisać drzewo algo, które sprawdza na podstawie określonych warunków. Język zapytań zrobi to samo dla ciebie, po prostu go rozwiąże. Ciekawy wiedzieć, jaki jest przypadek użycia? To zadziała dla DS jak Lista. Nie mam pewności co do struktury drzewa: http://code.google.com/p/sbql4j/ – zengr