Как я могу выполнять запросы XPath на элементы domelement с помощью PHP?
Я пытаюсь выполнить запросы Xpath на Домелементы, но это, похоже, не работает. Вот код
<html>
<div class="test aaa">
<div></div>
<div class="link">contains a link</div>
<div></div>
</div>
<div class="test bbb">
<div></div>
<div></div>
<div class="link">contains a link</div>
</div>
</html>
что я делаю это:
$dom = new DOMDocument();
$html = file_get_contents("file.html");
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$entries = $xpath->query("//div[contains(@class,'test')]");
if (!$entries->length > 0) {
echo "Nothingn";
} else {
foreach ($entries as $entry) {
$link = $xpath->query('/div[@class=link]',$entry);
echo $link->item(0)->nodeValue;
// => PHP Notice: Trying to get property of non-object
}
}
все работает нормально до $xpath->query('/div[@class=link], $entry);
. Я не знаю, как использовать Xpath для определенного DOMElement ($entry).
как я могу использовать запросы xpath на DOMElement?
1 ответов
похоже, вы пытаетесь смешать селекторы CSS с XPath. Вы хотите использовать предикат ([...]
) глядя на значение