

XPATHを使用してテーブルデータの取得を行いたいと考えています。  
テーブルデータは、以下の通りです。  
このとき、以下の通り入力すれば「人数」や「平均身長」を指定できますが、その下にある「5」「170」を取得する方法がわからず、質問させていただきます。

[code]

    /table/tr[td[contains(normalize-space(),"平均身長")]]
    
[/code]

※ 「人数」と「平均身長」の数字データを""内を除きすべて同じXPATHを用いたいと考えています。

[code]

    <table>
      <tr>
        <td>人数</td>
        <td>平均身長</td>
      </tr>
      <tr>
        <td>5</td>
        <td>170</td>
      </tr>  
    </table>
    
[/code]


CC BY-SA 4.0
2018-05-04T01:55:59.383
43766
2022-04-13T12:05:20.550
2021-09-20T03:56:53.033
3060
25428
question
xpath
XPathによるテーブルデータを取得したい


XPath 2.0だとこんな風にも書けますよ．

[code]

    for $i in 1 to count(/table/tr[1]/td) return if (contains(/table/tr[1]/td[$i],'平均体重')) then string(/table/tr[2]/td[$i]) else ()
    
[/code]

**Xygen 20.0でのXPath/XQuery Builderでの実行画面:**

[![oXygen
20.0での実行画面](https://i.stack.imgur.com/6LY35.png)](https://i.stack.imgur.com/6LY35.png)

御参考まで．

［追伸］  
`index-of`を使うのが一番簡単なんじゃないか？と思います．例えば

[code]

    /table/tr[2]/td[index-of(/table/tr[1]/td/string(.),'平均体重')]/string(.)
    
[/code]

**以下同様の実行画面:**

[![oXygen
20.0での実行画面](https://i.stack.imgur.com/ajxk5.png)](https://i.stack.imgur.com/ajxk5.png)


CC BY-SA 4.0
2018-05-04T11:15:41.270
43777
2021-09-20T03:56:32.597
2021-09-20T03:56:32.597
3060
9503
43766
answer