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 № 1Masz 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.