PHP Xpath如何使用id检索Strong的内部文本

时间:2018-09-09 10:16:08

标签: php xpath


我有此代码,我想在“强”代码中获取文本。
从那里我想要值的html输出:

<strong id="sku-price">199.98</strong>

这就是我现在使用的代码

$link = "http://www.example.com";
$html = file_get_contents($link);
$doc = new DOMDocument();
$doc->loadHTML($html);
$xpath = new DOMXpath($doc);

$check = $xpath->query('//strong[@id="sku-price"]');
foreach($check as $p){
  **Then I don't know what to write here to get the value** 
}

当前它不起作用,请获得帮助以对其进行排序。

谢谢。

2 个答案:

答案 0 :(得分:1)

$check将是https://docs.python.org/2/tutorial/errors.html。 由于您使用的是ID,因此您可以从该列表中获得第一项内容,即DOMNodeList并获得nodeValue:

echo $check->item(0)->nodeValue;

如果要使用foreach,可以将代码更新为:

foreach($check as $p){
    echo $p->nodeValue;
}

答案 1 :(得分:1)

这里有两种可能。您可以阅读$textContent属性。它包含所有后代节点的文本内容。

$nodes = $xpath->query('//strong[@id="sku-price"]');
foreach($nodes as $strong) {
  var_dump($strong->textContent); 
}

或者您直接使用Xpath来获取它。 DOMXpath::evaluate()支持返回标量值的Xpath表达式。将表达式中的节点列表转换为字符串。

var_dump($xpath->evaluate('string(//strong[@id="sku-price"])');