是否可以在xpath中使用xpath?

时间:2015-02-25 16:04:35

标签: xpath html-table

我有一个看起来像这样的表:

<table>     
    <thead>
        <tr>
          <th data-th-key="col1"> <span> Foo </span>  </th>
          <th data-th-key="col2"> <span> Bar </span>  </th>
        </tr>
    </thead>
        <tbody>
            <tr>   
        <td>
                <div>
              <input data-model-key="col1">    
            </div>
        </td>
        <td>
            <div>
              <input data-model-key="col2">    
            </div>
        </td>
      </tr>
        </tbody>
</table>    

要找到正确的输入元素,我必须知道表头的数据密钥。有没有办法在第二个xth中使用第一个xpath?

Xpath one:

//table//thead//span[translate(normalize-space(.),'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')='foo']/parent::th/@data-th-key"

Xpath二:

//table//tbody//tr//td//div//input[@data-model-key='col1']

所以我想用Xpath one替换第二个中的col1值。

1 个答案:

答案 0 :(得分:3)

你可以写一个像

这样的表达式
//table//tbody//tr//td//div//input[@data-model-key = //table//thead//span[translate(normalize-space(.),'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')='foo']/parent::th/@data-th-key]

是的,这是可能且有意义的,并选择data-model-key等于data-th-key属性的输入(或输入)。