0

これは 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>

次の xpath root/parent/th../ct/child1 を使用した値 30 を取得したい

私の要件に従って修正された root/parent/th を変更することはできませんが、../ct/child1 から始まる残りの xpath を変更することはできます

4

1 に答える 1

0

xpath 式にエラーがあります: /th../ ではなく /th/../

また、/root/parent/th は 2 つの th 要素を選択しますが、両方とも child1 child の前に ct があるため、どちらを使用すべきか明確ではありません。

率直な答えは

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

つまり、最後の TH の最初の前の兄弟要素 CT です。

しかし、より有用な答えを得るには、より多くの情報が必要です。

于 2014-11-27T08:50:03.527 に答える