我有以下内容:
<div class="item">
<a href="ONE">
<img src="TWO">
</a>
</div>
我想使用XPath从那里取出“ONE”和“TWO”。
我现在的代码是:
$html = file_get_contents($_POST['url']);
$document = new DOMDocument();
$document->loadHTML ($html);
$selector = new DOMXPath($document);
$query = '//div[@class="item"]';
$anchors = $selector->query($query);
foreach ($anchors as $node) {
// print ONE;
// print TWO;
}
答案 0 :(得分:1)
这是一个例子:
$html = <<<EOF
<div class="item">
<a href="ONE">
<img src="TWO">
</a>
</div>
EOF;
$doc = new DOMDocument();
$doc->loadHTML($html);
$selector = new DOMXPath($doc);
$links = $selector->query(
'//div[@class="item"]//@href | //div[@class="item"]//@src'
);
foreach($links as $link) {
echo $link->nodeValue . PHP_EOL;
}
如果您希望按<div class="item">
细分,可以使用以下代码:
foreach($selector->query('//div[@class="item"]') as $div) {
foreach($selector->query('.//@href | .//@src', $div) as $link) {
echo $link->nodeValue . PHP_EOL;
}
}