簡體   English   中英

domXpath獲取祖先節點

[英]domXpath get ancestor node

我有以下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元素。

它具有一個attribute屬性,該屬性是您應該可以訪問的DOMNamedNodeMap 如果您想要的屬性是href:

$link = $item->attributes->getNamedItem("href")->nodeValue; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM