/ / chcesz odwołać się do wartości potomnej kuzyna w ścieżce xml - dla -xml-path

chcesz odwołać się do wartości potomnej kuzyna w ścieżce xml - for-xml-path

to jest dokument XML

 <CT>
<CHILD 1>  10   </CHILD 1>
<CHILD 2>   20    </CHILD 2>
</CT>

<TH>
<CHILD 3> 100   </CHILD 3>
<CHILD 4> 200   </CHILD 4>
</TH>

<CT>
<CHILD 1>  30  </CHILD 1>
<CHILD 6>  40  </CHILD 6>
</CT>

<TH>
<CHILD 7>  300  </CHILD 7>
<CHILD 8>  400  </CHILD 8>
</TH>

Chcę pobrać wartość 30, dla której użyłem następującej xpath root / parent / th ../ ct / child1

Nie mogę zmienić root / parent / th, który jest poprawiony zgodnie z moimi wymaganiami, ale mogę zmienić resztę xpath zaczynając od ../ct/child1

Odpowiedzi:

0 dla odpowiedzi № 1

Masz błąd w wyrażeniu xpath: nie /th../ ale /th/../

Ponadto, / root / parent / th wybiera dwa elementy i nie jest jasne, który z nich powinien być użyty, ponieważ oba z nich mają poprzedni ct z dzieckiem child1.

Prosta odpowiedź brzmi

/root/parent/TH[last()]/preceding-sibling::CT[1]/CHILD1

To znaczy. pierwszy poprzedni element rodzeństwa CT ostatniego TH.

Ale dla bardziej użytecznej odpowiedzi potrzebujemy więcej informacji.