Получить h2 html, используя Simple HTML DOM Parser - PullRequest
0 голосов
/ 28 апреля 2019

У меня есть веб-страница HTML с этим кодом:

<div class="col-sm-9 xs-box2">
    <h2 class="title-medium br-bottom">Your Name</h2>
</div>

Теперь я хочу использовать Simple HTML DOM Parser, чтобы получить текстовое значение h2 в этом div.Мой код:

$name = $html->find('h2[class="title-medium br-bottom"]');
echo $name;

Но он всегда возвращает ошибку: "

Notice: Array to string conversion in C:\xampp\htdocs\index.php on line 21
Array

Как я могу исправить эту ошибку?

1 Ответ

1 голос
/ 28 апреля 2019

Можете ли вы попробовать для Simple HTML DOM

 foreach($html->find('h2') as $element){
    $element->class;
 }

Существуют другие методы для анализа

Метод 1.

Вы можете получитьH2 теги, используя следующий фрагмент кода, используя DOMDocument и getElementsByTagName

$received_str = '<div class="col-sm-9 xs-box2">
  <h2 class="title-medium br-bottom">Your Name</h2>
</div>';
$dom = new DOMDocument;
@$dom->loadHTML($received_str);
$h2tags = $dom->getElementsByTagName('h2');
foreach ($h2tags as $_h2){
  echo $_h2->getAttribute('class');
  echo $_h2->nodeValue;
}

Method2

Используя Xpath, вы можете проанализировать его

$received_str = '<div class="col-sm-9 xs-box2">
    <h2 class="title-medium br-bottom">Your Name</h2>
</div>';
$dom = new DOMDocument;
$dom->loadHTML($received_str);
$xpath = new DomXPath($dom);
$nodes = $xpath->query("//h2[@class='title-medium br-bottom']");
header("Content-type: text/plain");
foreach ($nodes as $i => $node) {
    $node->nodeValue;
}
...