无法使用xPath获取元素后的文本

时间:2017-06-21 01:35:11

标签: php xpath

首先,对不起我的英语。

在查看了有关我的问题的许多主题后,我找不到任何可以使我的xPath正常工作的内容。

以下是我想从以下网站提取数据的网站:mysite

<td width="50%" valign="top">
    <span class="libelleLecture">Nom de la résidence&nbsp;:</span><br>
    La Maison du Soleil (Sylvie Paquette)
</td>

我想从名为“Nometcoordonnéesdelarésidence”的表中提取所有信息

对于第一个数据(Nom delarésidence),我尝试了这个xpath而没有运气

//*[@id="pourImpression"]/table[2]/tbody/tr[2]/td[1]/text()

出于某种原因,当我试图回应它时,这没有任何回报。

然后我试了

//*[@class="libelleLecture"]/following::br/text()

什么都没有出现......

但是当我尝试使用//*[@class="libelleLecture"]时,我需要所有“数据标题”,但没有值

Nom de la résidence :
Code postal :
...

任何人都知道我的错误在哪里?感谢。

修改

我无法让它工作,html错误500. / follow :: br / following-sibling :: text()似乎创建了错误。有什么想法吗?

这是我的代码:

$my_url = 'http://wpp01.msss.gouv.qc.ca/appl/K10/public/formulaire/K10FormCons.asp?noForm=1423';
$html = file_get_contents($my_url);
$dom = new DOMDocument();
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);

$my_xpath_query1 = '//*[@class="libelleLecture"]/following::br/following-sibling::text()';
$result_rows1 = $xpath->query($my_xpath_query1);

foreach ($result_rows1 as $result_object1){
    $nom = $result_object1->childNodes->item(0)->nodeValue;
    echo $nom."<br>";
}

1 个答案:

答案 0 :(得分:0)

从第二个XPath构建,目标文本节点不是br的孩子,而是兄弟姐妹:

//*[@class="libelleLecture"]/following::br/following-sibling::text()

导致Firefox的Firepath:

enter image description here