PHP - DOM Parser Example

Mở rộng DOM trong PHP đi kèm với chức năng phong phú mà chúng ta có thể thực hiện các thao tác khác nhau trên tài liệu XML và HTML. Chúng ta có thể xây dựng động một đối tượng DOM, tải một tài liệu DOM từ một tệp HTML hoặc một chuỗi với cây thẻ HTML. Chúng ta cũng có thể lưu tài liệu DOM vào một tệp XML, hoặc trích xuất cây DOM từ một tài liệu XML.

Lớp DOMDocument là một trong những lớp quan trọng nhất được định nghĩa trong phần mở rộng DOM.

$obj = new DOMDocument($version = "1.0", $encoding = "")

Nó đại diện cho một tài liệu HTML hoặc XML hoàn chỉnh; phục vụ như là gốc của cây tài liệu. Lớp DOMDocument bao gồm định nghĩa của một số phương thức tĩnh, một số phương thức trong số đó được giới thiệu ở đây −

Sr.No Methods & Description
1 createElement Create new element node
2 createAttribute Create new attribute
3 createTextNode Create new text node
4 getElementById Searches for an element with a certain id
5 getElementsByTagName Searches for all elements with given local tag name
6 load Load XML from a file
7 loadHTML Load HTML from a string
8 loadHTMLFile Load HTML from a file
9 loadXML Load XML from a string
10 save Dumps the internal XML tree back into a file
11 saveHTML Dumps the internal document into a string using HTML formatting
12 saveHTMLFile Dumps the internal document into a file using HTML formatting
13 saveXML Dumps the internal XML tree back into a string

Example

Hãy sử dụng tệp HTML sau cho ví dụ này −

<html>
<head> 
   <title>Tutorialspoint</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>

Chúng ta sẽ trích xuất Mô hình Đối tượng Tài liệu (DOM) từ tệp HTML trên bằng cách gọi phương thức loadHTMLFile() trong đoạn mã PHP sau −

<?php 

   /*** a new dom object ***/ 
   $dom = new domDocument; 

   /*** load the html into the object ***/ 
   $dom->loadHTMLFile("hello.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[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 />'; 
   }
   
?>

Nó sẽ tạo ra output

Designation: Android
Manager: Gopal
Team: Sairam
________________________________________
Designation: Hadoop
Manager: Gopal
Team: Satish
________________________________________
Designation: HTML
Manager: Gopal
Team: Raju
________________________________________
Designation: Web technologies
Manager: Gopal
Team: Javed
________________________________________
Designation: Graphic
Manager: Gopal
Team: Satish
________________________________________
Designation: Writer
Manager: Kiran
Team: Amith
________________________________________
Designation: Writer
Manager: Kiran
Team: Vineeth
________________________________________