在不损害内部表的情况下删除外部表


Removing an outer table without harming internal tables?

我帮助管理一个网站,该网站从父网站中提取其几个页面的内容。 我们无法控制父站点的格式,我们有义务获取内容(而不是复制/粘贴),以避免在不同站点上出现相同内容的多个版本。

这些页面的内容保存在表格中。我使用简单的正则表达式来删除我们不需要的大部分内容并改进一些格式。 处理后的当前字符串如下所示:

<table class='pageSetup'>    
   <tbody>
     <tr>
      <td>
         <!--Lots of content here, including child tables-->
      </td>
     </tr>
   </tbody>
</table>

我想剥离该外部表(及其所有与子表相关的标签),而不会损害该 td 中的内容,该 td 确实包含一个表。

我可以访问PHP。 我猜我想以某种方式使用 DOM 来做到这一点,但我对 DOM 没有太多经验。

谁能让我指向正确的方向? 我捣鼓了这个问题,撞上了砖墙。我没有任何代码(我昨晚沮丧地删除了它)。

谢谢!

您可以使用

此 http://simplehtmldom.sourceforge.net/

尝试将整个HTML内容加载到一个对象中,然后仅提取所需的部分

  1. 查看此快速入门以了解如何在对象中加载 hmtl

  2. 然后搜索您的内容:

    $ret = $html->find('table[class=pageSetup] tbody tr td', 0);

  3. 最后,访问您需要的代码,如下所示:

    $ret->内部文本

我希望这有帮助