繁体   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