>我有以下html结构:
<a class="class1" href="link">
<div class="class2" id="result_0">
<img imgstuffhere />
<div class="class3">
<span>text</span>
</div>
</div>
</a>
<a class="class1" href="link">
<div class="class2" id="result_0">
<img imgstuffhere />
<div class="class3">
<span>text</span>
</div>
</div>
</a>
etc....
我正在使用domXPath解析页面。我能够通过做
$items = $xpath->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' class1 ')]");
然后我循环项目的结果集:
foreach($items as $item){
$name = $xpath->query("descendant::*[contains(concat(' ', normalize-space(@class), ' '), ' class3 ')]", $item)->item(0)->nodeValue;
etc...
}
我的问题是,在循环中,我需要获取位于 class1 节点中的 href 链接。
我试图玩弄祖先的东西,但不可能让它起作用。
答
$link = $item->getAttribute('href');
只是做了这个把戏。
$item
是一个 DomNode,表示您选择的a
元素。
它有一个属性属性,这是一个你应该能够访问的DOMNamedNodeMap。如果所需的属性是 href:
$link = $item->attributes->getNamedItem("href")->nodeValue;