程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 用PHP讀取和編寫XML DOM

用PHP讀取和編寫XML DOM

編輯:關於PHP編程

       有許多技術可用於用 PHP 讀取和編寫 XML。本文提供了三種方法讀取 XML:使用 DOM 庫、使用 SAX 解析器和使用正則表達式。還介紹了使用 DOM 和 PHP 文本模板編寫 XML。

      用 PHP 讀取和編寫可擴展標記語言(XML)看起來可能有點恐怖。實際上,XML 和它的所有相關技術可能是恐怖的,但是用 PHP 讀取和編寫 XML 不一定是項恐怖的任務。首先,需要學習一點關於 XML 的知識 —— 它是什麼,用它做什麼。然後,需要學習如何用 PHP 讀取和編寫 XML,而有許多種方式可以做這件事。

      本文提供了 XML 的簡短入門,然後解釋如何用 PHP 讀取和編寫 XML。

      什麼是 XML?

      XML 是一種數據存儲格式。它沒有定義保存什麼數據,也沒有定義數據的格式。XML 只是定義了標記和這些標記的屬性。格式良好的 XML 標記看起來像這樣:

      Jack Herrington

      這個 標記包含一些文本:Jack Herrington。

      不包含文本的 XML 標記看起來像這樣:

      用 XML 對某件事進行編寫的方式不止一種。例如,這個標記形成的輸出與前一個標記相同:

      也可以向 XML 標記添加屬性。例如,這個 標記包含 first 和 last 屬性:

      也可以用 XML 對特殊字符進行編碼。例如,& 符號可以像這樣編碼:

      &

      包含標記和屬性的 XML 文件如果像示例一樣格式化,就是格式良好的,這意味著標記是對稱的,字符的編碼正確。清單 1 是一份格式良好的 XML 的示例。

      清單 1. XML 圖書列表示例

      Jack Herrington

      O'Reilly

      Jack Herrington

      O'Reilly

      清單 1 中的 XML 包含一個圖書列表。父標記 包含一組 標記,每個 標記又包含 、

      O'Reilly

      Jack Herrington

      O'Reilly

      %

      使用 DOM 的真正價值在於它創建的 XML 總是格式正確的。但是如果不能用 DOM 創建 XML 時該怎麼辦?

      用 PHP 編寫 XML

      如果 DOM 不可用,可以用 PHP 的文本模板編寫 XML。清單 7 顯示了 PHP 如何構建圖書 XML 文件。

      清單 7. 用 PHP 編寫圖書 XML

      $books = array();

      $books [] = array(

      'title' => 'PHP Hacks',

      'author' => 'Jack Herrington',

      'publisher' => "O'Reilly"

      );

      $books [] = array(

      'title' => 'Podcasting Hacks',

      'author' => 'Jack Herrington',

      'publisher' => "O'Reilly"

      );

      ?>

      foreach( $books as $book )

      {

      ?>

      }

      ?>

      腳本的頂部與 DOM 腳本類似。腳本的底部打開 books 標記,然後在每個圖書中迭代,創建 book 標記和所有的內部 title、author 和 publisher 標記。

      這種方法的問題是對實體進行編碼。為了確保實體編碼正確,必須在每個項目上調用 htmlentities 函數,如清單 8 所示。

      清單 8. 使用 htmlentities 函數對實體編碼

      foreach( $books as $book )

      {

      $title = htmlentities( $book['title'], ENT_QUOTES );

      $author = htmlentities( $book['author'], ENT_QUOTES );

      $publisher = htmlentities( $book['publisher'], ENT_QUOTES );

      ?>

      }

      ?>

      這就是用基本的 PHP 編寫 XML 的煩人之處。您以為自己創建了完美的 XML,但是在試圖使用數據的時候,馬上就會發現某些元素的編碼不正確。

      結束語

      XML 周圍總有許多誇大之處和混淆之處。但是,並不像您想像的那麼難 —— 特別是在 PHP 這樣優秀的語言中。在理解並正確地實現了 XML 之後,就會發現有許多強大的工具可以使用。XPath 和 XSLT 就是這樣兩個值得研究的工具。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved