Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xpath 如何在两个标记之间选择元素_Xpath - Fatal编程技术网

Xpath 如何在两个标记之间选择元素

Xpath 如何在两个标记之间选择元素,xpath,Xpath,可能重复: 基于此html,我需要两个xpath表达式: <table dir = "rtl ......."> <tbody> <script src = "get.aspx?type=js&file=ajax&rev=3"......> <script language = "JavaScript" src = "get.aspx?type=js&file=mc&rev=6"></script> &

可能重复:

基于此html,我需要两个xpath表达式:

<table dir = "rtl .......">
<tbody>
<script src = "get.aspx?type=js&file=ajax&rev=3"......>
<script language = "JavaScript" src = "get.aspx?type=js&file=mc&rev=6"></script>
<script>..</script>
<tr>
<td class = "d2"...>..</td>
</tr>
<tr>..</tr> <--
<tr>..</tr> <--
<tr>..</tr> <-- first expression should select these elements
<tr>..</tr> <--
<tr>..</tr> <--
<tr>..</tr> <--
<tr>..</tr> <--
<tr>
<td class = "d2"...>..</td>
</tr>
<tr>..</tr> <--
<tr>..</tr> <--
<tr>..</tr> <-- second expression should select these elements
<tr>..</tr> <--
<tr>..</tr> <--
<tr>..</tr> <--
<tr>..</tr> <--
</tbody>

..
..

.. 在XPath2.0中,可以采用两个节点序列的交集,如下所示

//table/tbody/tr[td/@class = 'd2'][1]/following-sibling::tr except //table/tbody/tr[td/@class = 'd2'][2]/following-sibling::tr
在该表达式中,您将获得包含类d2的第一个td的tr之后的所有tr同级,然后删除第二个tr之后的tr同级

不幸的是,XPath 1.0没有两个节点集相交的概念。但是,您可以在XPath 1.0中获得两个节点集的并集,如下所示:

//table/tbody/tr[td/@class = 'd2'][1]/following-sibling::tr | //table/tbody/tr[td/@class = 'd2'][2]/preceding-sibling::tr
下面的路径将在包含类d2的td的第二个tr之后获得tr节点

//table/tbody/tr[td/@class = 'd2'][2]/following-sibling::tr

@Oded我只想返回做某件事的这些元素的计数。你还没有回答我的问题。你试了什么?您尝试了什么xpath?我正在Mike一个iphone应用程序并创建一个包含节的tableView,对于每个节,我需要将节中的行数设置为特定值,因为我需要计算这些元素。我正在使用HPPLE解析html。使用xpath 1.0时,我更新了答案以显示替代路径