如何使用php xpath获取节点的所有子节点


How to get all childs of a node using php xpath?

在下面的代码中:

<tbody>
  <tr class='even'>
    <th>header 1</th>
    <td>11</td>
    <td>12</td>
  </tr>
  <tr class='even'>
    <th>header 2</th>
    <td>21</td>
    <td>22</td>
  </tr>
</tbody>

当我运行时,$xpath->query("//tr[@class='even']")

它只显示<th>标签的内容。我不应该得到<td>的内容以及,即<tr>标签内的一切?

如果没有,我怎样才能得到td而不必像这样单独写:

$xpath->query("//tr[@class='even']/th")
$xpath->query("//tr[@class='even']/td")

您可以使用*选择器来选择任何标记。

$xpath->query("//tr[@class='even']/*")

上面的代码选择tr.even的每个子节点。您也可以使用| (OR)操作符,如底部代码。

$xpath->query("//tr[@class='even']/td | //tr[@class='even']/th");