我正在使用PHP Simple HTML DOM解析器来爬取网上商店的某些数据(还运行XAMPP 1.7.2和PHP5.3.0),并且遇到<tbody>标记的问题。该表的结构必不可少(细节实际上并不那么重要):

<table>
  <thead>
    <!--text here-->
  </thead>
  <tbody>
    <!--text here-->
  </tbody>
</table>

现在,我尝试通过使用代码进入<tbody>部分:
$element = $html->find('tbody',0)->innertext;

它不会引发任何错误,当我尝试回显它时,它只会打印出任何内容。我已经在其他元素<thead><table>甚至是<span class="price">之类的代码上测试了代码,它们都工作正常(当然,删除“,0”会使代码失败)。他们都给出了正确的部分。外文同上。但这一切都在<tbody>上失败。

现在,我浏览了解析器,但不确定是否可以解决。我注意到<thead>甚至都没有提到,但是效果很好。耸耸肩

我想我可以尝试进行 child 导航,但这似乎也有问题。我刚刚尝试运行:
$el = $html->find('table',0);
$el2 = $el->children(2);
echo $el2->outertext;

也没有骰子尝试将children替换为first_child,将2替换为1,但仍然没有骰子。有趣的是,如果我尝试使用->find而不是children,则效果很好。

我非常有信心可以找到一种解决方案,但是这种行为似乎很奇怪,可以在此处发布。我好奇的心为获得的所有帮助感到高兴。

最佳答案

在simple_html_dom.php文件中注释或删除行#396

// if ($m[1]==='tbody') continue;

关于php - PHP简单HTML DOM解析器中的<tbody>故障,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2340952/

10-12 05:28