【问题标题】:PHP DOM get element which containsPHP DOM获取包含的元素
【发布时间】:2014-02-13 19:39:52
【问题描述】:

在使用 PHP DOM 解析 HTML 代码方面需要帮助。 这是巨大的 HTML 代码的简单部分:

<table width="100%" border="0" align="center" cellspacing="3" cellpadding="0" bgcolor='#ffffff'>
  <tr>
    <td align="left" valign="top" width="20%">
      <span class="tl">Obchodne meno:</span>
    </td>
    <td align="left" width="80%">
      <table width="100%" border="0">
        <tr>
          <td width="67%">
            <span class='ra'>STORE BUSSINES</span>
          </td>
          <td width="33%" valign='top'>
            <span class='ra'>(od: 02.10.2012)</span>
          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>

我需要的是获取文本“STORE BUSINESS”。不幸的是,我唯一能抓住的是“Obchodne meno”作为第一个标签的内容,所以根据这个内容我需要得到它的父->父->第一个兄弟->子->子->子->子->内容。我在 php 中解析 html 的经验有限,因此任何帮助都会很有价值。提前致谢!

【问题讨论】:

  • 首先,最好展示一些您已经尝试过的 php 代码,否则 75% 可能知道解决方案的人甚至不会考虑帮助您。
  • 我找不到如何按内容获取元素的方法,所以没有相关的 php 代码可显示
  • 我遇到了同样的问题,因为我对 jQuery 更熟悉,所以我在浏览器中完成了整个爬取;)但我想这对你来说没有解决方案。

标签: php html dom tags contains


【解决方案1】:

利用DOMDocument类并循环遍历&lt;span&gt;标签并将它们放入数组中。

<?php
$html=<<<XCOE
<table width="100%" border="0" align="center" cellspacing="3" cellpadding="0" bgcolor='#ffffff'>
    <tr>
    <td align="left" valign="top" width="20%">
      <span class="tl">Obchodne meno:</span>
    </td>
    <td align="left" width="80%">
      <table width="100%" border="0">
        <tr>
          <td width="67%">
            <span class='ra'>STORE BUSSINES</span>
          </td>
          <td width="33%" valign='top'>
            <span class='ra'>(od: 02.10.2012)</span>
          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>

XCOE;

$dom = new DOMDocument;
$dom->loadHTML($html);
foreach ($dom->getElementsByTagName('span') as $tag) {
    $spanarr[]=$tag->nodeValue;
}

echo $spanarr[1]; //"prints" STORE BUSINESS

【讨论】:

  • 如果我的表达不清楚,我很抱歉。我只向您展示了一小段 HTML 代码,找到“STORE BUSINESS”的唯一方法不是通过第二次“span”出现。内容“Obchodne meno:”就是方式。
猜你喜欢
  • 2010-11-23
  • 2017-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-20
  • 2017-07-29
  • 2015-08-22
相关资源
最近更新 更多