PHP DOM Parser 用法示例怎么写?

文章导读
上一个 测验 下一个 PHP 中的 DOM 扩展提供了丰富的功能,我们可以用它对 XML 和 HTML 文档执行各种操作。我们可以动态构建 DOM 对象,从 HTML 文件或包含 HTML 标签树的字符串加载 DOM 文档。我们还可以将 DOM 文档保存到 XML 文件,或
📋 目录
  1. A 示例
A A

PHP - DOM Parser 示例



上一个
测验
下一个

PHP 中的 DOM 扩展提供了丰富的功能,我们可以用它对 XML 和 HTML 文档执行各种操作。我们可以动态构建 DOM 对象,从 HTML 文件或包含 HTML 标签树的字符串加载 DOM 文档。我们还可以将 DOM 文档保存到 XML 文件,或从 XML 文档中提取 DOM 树。

DOMDocument class 是 DOM 扩展中定义的最重要的 class 之一。

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

它代表整个 HTML 或 XML 文档;作为文档树的根。DOMDocument class 包含了许多静态方法的定义,其中一些在此介绍 −

序号 方法 & 描述
1

createElement

创建新的 element 节点

2

createAttribute

创建新的 attribute

3

createTextNode

创建新的 text 节点

4

getElementById

搜索具有特定 id 的 element

5

getElementsByTagName

搜索具有给定本地 tag name 的所有 element

6

load

从文件加载 XML

7

loadHTML

从字符串加载 HTML

8

loadHTMLFile

从文件加载 HTML

9

loadXML

从字符串加载 XML

10

save

将内部 XML 树转储回文件

11

saveHTML

使用 HTML 格式将内部文档转储到字符串

12

saveHTMLFile

使用 HTML 格式将内部文档转储到文件

13

saveXML

将内部 XML 树转储回字符串

示例

我们将使用以下 HTML 文件作为本示例 −

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

我们现在将通过调用以下 PHP 代码中的 loadHTMLFile() 方法,从上述 HTML 文件中提取 Document Object Model −

<?php 

   /*** 创建一个新的 DOM 对象 ***/ 
   $dom = new domDocument; 

   /*** 将 HTML 加载到对象中 ***/ 
   $dom->loadHTMLFile("hello.html");

   /*** 丢弃空白字符 ***/ 
   $dom->preserveWhiteSpace = false; 

   /*** 通过标签名获取 table ***/ 
   $tables = $dom->getElementsByTagName('table'); 

   /*** 从 table 中获取所有行 ***/ 
   $rows = $tables[0]->getElementsByTagName('tr'); 

   /*** 循环遍历表格行 ***/ 
   foreach ($rows as $row) {
   
      /*** 通过标签名获取每个列 ***/ 
      $cols = $row->getElementsByTagName('td'); 

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

它将产生以下 输出

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
________________________________________