2016-10-15 5 views
2

В приведенном ниже коде:Как получить все дочерние узлы с помощью 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>?

Если не так, как я могу получить тд без необходимости писать отдельные из них, как это:

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

ответ

1

Вы можете использовать * селектор, который выбрать любой тег.

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

Приведенный выше код выбора каждого ребенка tr.even. Также вы можете использовать оператор | (OR), например, нижний код.

$xpath->query("//tr[@class='even']/td | //tr[@class='even']/th"); 
Смежные вопросы