如何在xpath中获取两个br标签?

时间:2017-02-27 13:32:57

标签: xpath domxpath

我有一张像这样的td的表

<td>
   <span> Washington US <br>98101 Times Square</span>
</td>

我可以获取页面中的所有元素,但我需要分别获取这两个值。如果那不可能,我想以某种方式得到98101 Times Square

我尝试过做string(//tr[3]//td[2])/这样的事情,但我得到的只是两个连在一起的文字。

2 个答案:

答案 0 :(得分:1)

您可以使用span/text()td元素中选择文本子节点,因此假设您发布的路径选择包含您想要span //tr[3]//td[2]/span/text()的{​​{1}} $html = <<<EOD <html> <body> <table> <tr> <td>1</td> </tr> <tr> <td>2</td> </tr> <tr> <td>3,1</td> <td> <span> Washington US <br>98101 Times Square</span> </td> </tr> </body> </html> EOD; $doc = new DOMDocument(); $doc->loadHTML($html); $xpath = new DOMXPath($doc); $textNodes = $xpath->query('//tr[3]//td[2]/span/text()'); foreach ($textNodes as $text) { echo $text->textContent . "\n"; }

以下是一个示例:

 Washington US 
98101 Times Square

输出

Mark Directory as -> Excluded

答案 1 :(得分:1)

尝试

log -1 HEAD

td/span/node()[1]

td/span/node()[3]