PHP DOM获取包含的元素

时间:2014-01-23 10:13:11

标签: php html dom tags contains

需要帮助解析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”作为第一个标签的内容,所以根据这个内容,我需要得到它的父母 - &gt; parent-&gt; first sibling-&gt; child-&gt; child-&gt ;儿童安全&GT;儿童安全&gt;内容。我在php中解析html的经验有限,所以任何帮助都是有价值的。提前谢谢!

1 个答案:

答案 0 :(得分:0)

利用DOMDocument类并循环浏览 <span> 标记并将其放入数组中。

<?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