1

例如,如果我有

<form name="blah">
   <input name="1"/>
   <input name="2"/>
   <table>
      <tr>
        <td>
          <unkown number of levels more>
           <input name="3"/>
        </td>
      </tr>
   <table>
</form>

如何组合一个返回输入 1,2 和 3 的查询?

编辑:我应该注意我对抓取页面上的所有输入元素不感兴趣,我只想要作为特定表单的子元素的所有输入元素,所以“//”就出来了。

4

2 回答 2

8

//无论级别如何,都使用搜索。请记住,这是一个“昂贵的”搜索。因此,您可以指定的上下文越多,XPath 调用它的速度就越快。

/html/path/to/form//input

更可取。如果您在表单的上下文中,那就更好了。您的 XPath 查询看起来更像:

form//input

或者如果你只是想要'blah'形式的孩子:

form[@name='blah']//input
于 2009-11-06T19:26:19.487 回答
2

使用双正斜杠,这样//input将选择所有输入元素,而不管层次结构如何。

如果您只想要表单元素中的所有输入标签,请使用//form/input /form//input

编辑:是的,感谢 Kragen 的更正。

于 2009-11-06T19:22:42.803 回答