PHP DOM解析器示例


以PHP5.X版本编写的HTML Dom解析器。Dom Parser非常擅长处理XML和HTML。Dom解析器基于树来访问数据之前,它会将数据加载到dom对象中,并将数据更新到Web浏览器。以下示例显示如何访问Web浏览器中的HTML数据。

<?php
   $html = '
      <head>
         <title>CodingDict</title>
      </head>

      <body>
         <h2>Course details</h2>

         <table border = "0">
            <tbody>
               <tr>
                  <td>Android</td>
                  <td>Gopal</td>
                  <td>Sairam</td>
               </tr>

               <tr>
                  <td>Hadoop</td>
                  <td>Gopal</td>
                  <td>Satish</td>
               </tr>

               <tr>
                  <td>HTML</td>
                  <td>Gopal</td>
                  <td>Raju</td>
               </tr>

               <tr>
                  <td>Web technologies</td>
                  <td>Gopal</td>
                  <td>Javed</td>
               </tr>

               <tr>
                  <td>Graphic</td>
                  <td>Gopal</td>
                  <td>Satish</td>
               </tr>

               <tr>
                  <td>Writer</td>
                  <td>Kiran</td>
                  <td>Amith</td>
               </tr>

               <tr>
                  <td>Writer</td>
                  <td>Kiran</td>
                  <td>Vineeth</td>
               </tr>
            </tbody>
         </table>
      </body>
   </html>
   ';
   /*** a new dom object ***/
   $dom = new domDocument;

   /*** load the html into the object ***/
   $dom->loadHTML($html);

   /*** discard white space ***/
   $dom->preserveWhiteSpace = false;

   /*** the table by its tag name ***/
   $tables = $dom->getElementsByTagName('table');

   /*** get all rows from the table ***/
   $rows = $tables->item(0)->getElementsByTagName('tr');

   /*** loop over the table rows ***/
   foreach ($rows as $row) {
      /*** get each column by tag name ***/
      $cols = $row->getElementsByTagName('td');

      /*** echo the values ***/
      echo 'Designation: '.$cols->item(0)->nodeValue.'<br />';
      echo 'Manager: '.$cols->item(1)->nodeValue.'<br />';
      echo 'Team: '.$cols->item(2)->nodeValue;
      echo '<hr />';
   }
?>

它会产生以下结果 -

DOM解析器示例