从php

时间:2018-10-21 09:49:47

标签: php html-parsing

我有此代码:

     $doc = new \DOMDocument();
  $doc->loadHTML($content);


    $links = [];
  $container = $doc->getElementById("content");
  $arr = $container->getElementsByTagName("a");
  foreach($arr as $item) {
    $href =  $item->getAttribute("href");
    $title =  $item->getAttribute("title");
    $links[] = [
      'href' => $href,
      'title' => $title
    ];
  }
  for($i = 0, $l = count($links); $i < $l; ++$i) {
  echo $links[$i]['title'].' '.$links[$i]['href'].'<br />';
}

html结构如下:

<div class="post-content right-col">
                    <a title="" href="https://www.swisscars.pl/samochody/516321/">
                        <img src="https://swisscars.pl/uploads2/180843_0.jpg" alt="" class="thumb alignleft" height="75" width="75"/>
                    </a>
                    <h2 style="line-height:150%;">
                        <a href="https://www.swisscars.pl/samochody/516321/" rel="bookmark"  title="Renault Kangoo II (96&#8217;011 km)">
                            Renault Kangoo II (96&#8217;011 km)                     </a>
                    </h2>
                Do końca aukcji: <span id="countdown100">2018-10-23 14:00:00 GMT+02:00</span><p>DATA ZAKONCZENIA AUKCJI: 2018-10-23 14:00</p>

                </div>

            </div>

我只想从标记巫婆属性rel =“ bookmark”中获取值。请帮我解决一下这个。我尝试使用hasAttribute函数,但无法正常工作。请描述一下我只能从带有rel =“ bookmark”属性的标签中获取的内容。 PHP具有hasAttribute()函数或类似此函数的东西?

感谢帮助

1 个答案:

答案 0 :(得分:0)

可以选择XPath,您可以这样做:

$doc = new \DOMDocument();
$doc->loadHTML($content);

$xpath = new DOMXPath($dom);
$links = $xpath->query('//a[@rel="bookmark"]');

这应该返回一个您可以循环访问的DOMNodeList。