如何使用php解析HTML?

如何使用php解析HTML?,php,html-parsing,simple-html-dom,Php,Html Parsing,Simple Html Dom,我有以下HTML文件 <body> <div class="container"> <div class="book"> <b>Book Name:</b></br> <span class="bookname"> Name of the Book </span></br> <b>Summary:</b>&

我有以下HTML文件

 <body>
   <div class="container">
     <div class="book">
       <b>Book Name:</b></br>
       <span class="bookname"> Name of the Book </span></br>
       <b>Summary:</b></br>
       .....
    </div>
   </div>
  </body>
我正在尝试使用“simple_html_dom”第三方插件进行解析

<?php
 include_once('simple_html_dom.php');
 $html = new simple_html_dom();
 $html->load_file("html_file.html");
 echo $html->find('span[class=bookname]')->innertext;
?>
但是上面的代码不起作用。如果我做错了什么,请告诉我,或者如果你知道的话,你可以通过使用PHP DOM模块来帮助我。

simple\u html\u DOM使用类似jQuery或CSS的选择器,因此find将返回一个对象数组(如果有的话)

echo $html->find('span[class=bookname]', 0)->innertext; 
应该有用。或者更好:

echo $html->find('span.bookname', 0)->innertext; 

您必须做得比代码不起作用更好。我们不知道这意味着什么。我没有simplehtmldom要测试,但我假设find返回一个数组或元素集合,您要循环,因此没有innertext属性。你应该试着打开错误报告或者检查你的错误日志,看看是否有什么东西被报告了,很可能是这样的。然后,如果你阅读文档查找,通过CSS选择器查找元素。如果设置了索引,则返回第n个元素对象,否则返回对象数组。在阅读文档的3秒钟内,您会发现这是一个惊人的发现。
echo $html->find('span.bookname', 0)->innertext;