用MySQL和PHP創建XML

 xml(標準化越來越近瞭)是作為數據交換標準而出現的。Java和.NET都內在支持xml(標準化越來越近瞭),但是其它平臺上的開發者也不用擔心自己被這項技術所遺棄瞭。php(做為現在的主流開發語言)就是一個頗受歡迎的支持xml(標準化越來越近瞭)的腳本環境。
 

在本文中,我將向你介紹利用諸如php(做為現在的主流開發語言)和MySQL(和PHP搭配之最佳組合)這樣的開放源碼工具來處理xml(標準化越來越近瞭)的過程。我將以執行一個MySQL(和PHP搭配之最佳組合)查詢並把從查詢所得到數據格式化為xml(標準化越來越近瞭)為例來加以說明。最後,在開始埋頭編寫代碼之前,我將介紹如何把xml(標準化越來越近瞭)寫入文件並檢測系統設置。

為瞭可以運行本文所給出的代碼,你需要能過運行php(做為現在的主流開發語言)和MySQL(和PHP搭配之最佳組合),而且為瞭充分利用這些例子,你還需要知道主機名、用戶名和口令。例子中的MySQL(和PHP搭配之最佳組合)數據庫的格式如圖A所示。讓我們看看如何用php(做為現在的主流開發語言)來連接該數據庫。

圖A

 

用php(做為現在的主流開發語言)建立數據庫連接

下面的php(做為現在的主流開發語言)腳本建立到數據庫的連接並執行一個查詢:
 
 <?php(做為現在的主流開發語言)
$db_name = “xrandomusa_4”;
$connection = MySQL(和PHP搭配之最佳組合)_connect(“MySQL(和PHP搭配之最佳組合).somewhere.com”, “username”, “password”) or die(“Could not connect.”);
$table_name = pages;

 

查詢MySQL(和PHP搭配之最佳組合)

在MySQL(和PHP搭配之最佳組合)連接建立之後,你必須用該連接來建立當前數據庫。下面的代碼就是用來完成這個任務的:
 
$db = MySQL(和PHP搭配之最佳組合)_select_db($dbName, $link);

現在,用一個SQL語句來選擇$table_name中的所有行:
$query = “select * from ” . $table_name;

如有必要,你可以隨後添加屬性。現在,如下執行查詢:
$result = MySQL(和PHP搭配之最佳組合)_query($query, $connection) or die(“Could not complete database query”);
$num = MySQL(和PHP搭配之最佳組合)_num_rows($result);

你可以通過php(做為現在的主流開發語言).net網站來獲得關於所有MySQL(和PHP搭配之最佳組合)函數的參考資料。

建立並編寫xml(標準化越來越近瞭)

 

現在,你應該已經做好瞭建立新xml(標準化越來越近瞭)文檔的準備瞭。這有許多種方法,不過我認為清單A中所用到的方法可以滿足絕大多數目的。

現在我們詳細介紹這一過程。變量num表示你查詢的數據行出現與否,它對MySQL(和PHP搭配之最佳組合)MySQL(和PHP搭配之最佳組合)_num_rows函數是可測的。變量$file包含瞭一個指針,該指針指向php(做為現在的主流開發語言)在文件系統中成功的搜索到results.xml(標準化越來越近瞭)時所產生文件對象。如果找到result.xml(標準化越來越近瞭),則創建你的php(做為現在的主流開發語言)文件對象以及指定文件,且其屬性是可寫的。現在你可以把一個變量的內容打印到創建後的文件(由於你的目錄已經設置為允許php(做為現在的主流開發語言)寫文件,所以這麼做是沒有問題的)。

註意,從安全的角度來考慮,在實際的應用程序開發中這麼做其實是很愚蠢的。為瞭確保你能夠安全的實現本文所涉及的概念,你應該為你所希望打開並寫入的文件提供完全路徑,並確保該文件位於你的Web根目錄之下。

然後,php(做為現在的主流開發語言)MySQL(和PHP搭配之最佳組合)_fetch_array函數把查詢變量$result轉換成一個數組,並按其關鍵字進行循環。如果pgaeTitle在查詢所返回的欄之中,對每一行返回值都向字符串變量$_xml(標準化越來越近瞭)寫入某些文本。

註意運算符“.=”(它用來把xml(標準化越來越近瞭)格式的字符串當作數值來拼接)讀取$row。當循環結束的時候,根xml(標準化越來越近瞭)節點打印到變量$_xml(標準化越來越近瞭)之中,所有的變量用php(做為現在的主流開發語言)fwrite函數寫入file.xml(標準化越來越近瞭)文件之中。

現在,屏幕上顯示出一個鏈接。確保這條鏈接指向你的xml(標準化越來越近瞭)文件的路徑,否則你無法看到這個格式化xml(標準化越來越近瞭)(該文件用php(做為現在的主流開發語言)處理MySQL(和PHP搭配之最佳組合)查詢而產生)。

You May Also Like