Poprzedzający-rodzeństwo :: oś
Poprzedzający-rodzeństwo :: oś jest osią nawigacji, która zawiera wszystkie powyższe elementy rodzeństwem elementu ostrości. Przez "rodzeństwo" rozumiemy inny element, który ma ten sam element nadrzędny względem elementu odniesienia. Przez "poprzedzający" rozumiemy węzeł, który występuje przed referencyjnym. Kolejność poprzedniej osi rodzeństwa jest odwrotną kolejnością dokumentów. Spójrz na ten dokument:
<fruit>
<banana>
<lady-finger-banana/>
</banana>
<apple/>
<pear/>
<kiwi/>
</fruit>
Jeśli węzeł celem jest gruszka, wówczas sekwencja poprzedzająca-rodzeństwo :: * jest ...
- jabłko
- banan
Uwaga: owoce, gruszki, banany i kiwi nie występują w sekwencji.
więc prawdziwe są następujące:
- poprzedzający-rodzeństwo :: * [1] jest jabłkiem
- poprzedzający-rodzeństwo :: * [2] banana
- count (preceding- rodzeństwa :: *) oznacza 2
- poprzedzających rodzeństwo :: jabłoni [1] jest również jabłko
- poprzedzających rodzeństwo :: bananów [1] banan
- poprzedzających rodzeństwo :: * [3] jest nieobecny lub emp Sekwencja ty
poprzedzający-rodzeństwo :: pop/przodek :: inwentaryzacji/totalprice Przykład
Musimy zmienić swój przykładowy dokument trochę do pożytkiem studiować tym przykładzie
<product>
<inventory>
<drink>
<lemonade>
<price>$2.50</price>
<amount>20</amount>
</lemonade>
<pop>
<price>$1.50</price>
<amount>10</amount>
</pop>
<focus-item />
</drink>
<totalprice>$15</totalprice>
</inventory>
</product>
Niech nas powiedz, że fokus znajduje się na elemencie focus elementu. Aby ocenić ekspresję poprzedzający-rodzeństwo :: pop/przodek :: inwentaryzacji/totalprice następujące kroki
- poprzedzający rodzeństwo :: pop wybiera wszystkie powyższe elementy pop skupić-przedmiot. To ocenia sekwencję jednego węzła.
Dla każdego elementu w sekwencji lewej (tylko jeden element pop to tak się dzieje), ustaw tę pozycję jako tymczasowy punkcie ostrości, a ocena ekspresji z prawej strony/operatora, który jest ...
ancestor::inventory
Istnieje tylko jeden taki węzeł, który jest węzłem inwentarzowym przodków. Zatem pierwszy/operator ocenia sekwencję jednego węzła inwentaryzacji.
Teraz oceniamy efekt łącznej ceny wyrażenia operandu i jego prawej strony. Dla każdego elementu w sekwencji lewej ręki (wystarczy tylko jeden węzeł ekwipunku), ustaw to jako tymczasowy element fokusu i oceń całkowitą cenę.
- totalprice to skrót od child :: totalprice. Na osi podrzędnej węzła tymczasowego fokusa znajduje się tylko jeden element ceny całkowitej, więc ostatecznym wynikiem jest sekwencja jednego węzła, który jest węzłem ceny całkowitej.
Zrozumienie przez Diagrams
Proszę spojrzeć na this page za ilustrację osiach.
Oto kopia diagramu tej strony dla poprzedzającego rodzeństwa ::. W nim węzłem referencyjnym jest Charlie, a węzeł na osi poprzedzającej-rodzeństwo :: jest zielony. Jest to jedyny taki węzeł.
bardzo jasne!wielkie dzięki: – olo
@Sean: Jeśli mam fokus na elemencie focus elementu: 'parent :: *' dałoby mi '', 'ancestor :: *' dałoby mi '', '' i ' '. Czy to jest poprawne? Pozdrawiam, Peter (+1 za miłe wyjaśnienie) –
Peter
Tak, zgadza się. –