PHP 和 XML: 使用expat函數(一)
可擴充標識語言(Extensible Markup Language )明顯是大多數開發人員將想要將其加入到他們的工具箱中的東西。XML是一種W3C的標準,它是開放的,語言中性的,API中性的,流式的,文本的,人類可讀 的, 並且是一種將結構化資料帶到web上的一種方法。XML是SGML的一個子集,它本身並不是一種標識 語言,但是 它允許作者來定義他們自已的標識語言,以便同分級資料保持更好的一致性。
現在,用PHP 分析XML文檔已經不是一個象我以前在web和其它地方所看到的被覆蓋得很深的專題了。
在 PHP手冊中已經提供了一些對XML分析函數非常有用的資訊,但是這個看上去好象就是我所能找到的 全部的信 息了。其它的語言看上去比PHP已經有了更多的關於XML的資訊和工作執行個體,所以在這篇文章 中,我將試圖為 改變這種情況作出我的一部分努力。
我將帶領讀者體驗一個相當簡單的XML的應用,那個應用是為我的網站所做的新聞系統的實現。我確實在 我的網站使用了這個應用,現在它工作的很好。如果你喜歡你可以自由地使用它。好了,讓我們開始吧!
為了在PHP中使XML分析函數有效,你需要一個支援XML 的模組在你的web伺服器上。這就意味著你將可能 不得不重新編譯你的模組,以便可以支援XML,請參考這裡來查看如何做到的更多的資訊。XML 分析函數現在 真正地包含在一種SAX分析器expat中,它提供了 關於XML的簡單的函數。另一種分析器是DOM分析器,它更容 易使用,關於它的一個例子就是微軟的MSXML分析器組件,它可以讓程式員通過操縱一種樹狀樣式的對象來處 理結點和元素。expat分析器(或任意的SAX 分析器)允許你分析一個XML文檔的實現方法是在對XML文檔進行分 析的時候對不同的標記類型指定回呼函數來完成的。當分析器開始分析你的XML文檔並且遇上了一個標記,它 將調用你的函數,並且在繼續往下 執行之前由你的函數對特定的標記進行處理。你可以把它看作是一種事件 驅動的方法。
讓我們看一個使用'Newsboy'類來分析的XML文檔
--------------------------------------------------------------------------------
mynews.xml
03/31/2000
Sooo Busy !
I haven't posted anything here for a while now as I have been busy with work(have to pay those
bills!).
I have just finished a neat little script that stores a complete record set in a session