用MySQL和PHP創(chuàng)建XML_Xml教程
推薦:AJAX基礎(chǔ)教程及初步使用什么是 AJAX? AJAX (異步 JavaScript 和 XML) 是個(gè)新產(chǎn)生的術(shù)語(yǔ),專為描述JavaScript的兩項(xiàng)強(qiáng)大性能.這兩項(xiàng)性能在多年來(lái)一直被網(wǎng)絡(luò)開(kāi)發(fā)者所忽略,直到最近Gmail,Google suggest和google Map
XML是作為數(shù)據(jù)交換標(biāo)準(zhǔn)而出現(xiàn)的。Java和.NET都內(nèi)在支持XML,但是其它平臺(tái)上的開(kāi)發(fā)者也不用擔(dān)心自己被這項(xiàng)技術(shù)所遺棄了。PHP就是一個(gè)頗受歡迎的支持XML的腳本環(huán)境。
在本文中,我將向你介紹利用諸如PHP和MySQL這樣的開(kāi)放源碼工具來(lái)處理XML的過(guò)程。我將以執(zhí)行一個(gè)MySQL查詢并把從查詢所得到數(shù)據(jù)格式化為XML為例來(lái)加以說(shuō)明。最后,在開(kāi)始埋頭編寫(xiě)代碼之前,我將介紹如何把XML寫(xiě)入文件并檢測(cè)系統(tǒng)設(shè)置。
為了可以運(yùn)行本文所給出的代碼,你需要能過(guò)運(yùn)行PHP和MySQL,而且為了充分利用這些例子,你還需要知道主機(jī)名、用戶名和口令。例子中的MySQL數(shù)據(jù)庫(kù)的格式如圖A所示。讓我們看看如何用PHP來(lái)連接該數(shù)據(jù)庫(kù)。
用PHP建立數(shù)據(jù)庫(kù)連接
下面的PHP腳本建立到數(shù)據(jù)庫(kù)的連接并執(zhí)行一個(gè)查詢:
| 以下為引用的內(nèi)容: <?php $db_name = "xrandomusa_4"; $connection = mysql_connect("MySQL.somewhere.com", "username", "password") or die("Could not connect."); $table_name = 'pages'; |
查詢MySQL
在MySQL連接建立之后,你必須用該連接來(lái)建立當(dāng)前數(shù)據(jù)庫(kù)。下面的代碼就是用來(lái)完成這個(gè)任務(wù)的:
$db = mysql_select_db($dbName, $link);
現(xiàn)在,用一個(gè)SQL語(yǔ)句來(lái)選擇$table_name中的所有行:
$query = "select * from " . $table_name;
如有必要,你可以隨后添加屬性。現(xiàn)在,如下執(zhí)行查詢:
$result = mysql_query($query, $connection) or die("Could not complete database query");
$num = mysql_num_rows($result);
你可以通過(guò)PHP.net網(wǎng)站來(lái)獲得關(guān)于所有MySQL函數(shù)的參考資料。
建立并編寫(xiě)XML
現(xiàn)在,你應(yīng)該已經(jīng)做好了建立新XML文檔的準(zhǔn)備了。這有許多種方法,不過(guò)我認(rèn)為清單A中所用到的方法可以滿足絕大多數(shù)目的。
現(xiàn)在我們?cè)敿?xì)介紹這一過(guò)程。變量num表示你查詢的數(shù)據(jù)行出現(xiàn)與否,它對(duì)MySQL的mysql_num_rows函數(shù)是可測(cè)的。變量$file包含了一個(gè)指針,該指針指向PHP在文件系統(tǒng)中成功的搜索到results.xml時(shí)所產(chǎn)生文件對(duì)象。如果找到result.xml,則創(chuàng)建你的PHP文件對(duì)象以及指定文件,且其屬性是可寫(xiě)的。現(xiàn)在你可以把一個(gè)變量的內(nèi)容打印到創(chuàng)建后的文件(由于你的目錄已經(jīng)設(shè)置為允許PHP寫(xiě)文件,所以這么做是沒(méi)有問(wèn)題的)。
注意,從安全的角度來(lái)考慮,在實(shí)際的應(yīng)用程序開(kāi)發(fā)中這么做其實(shí)是很愚蠢的。為了確保你能夠安全的實(shí)現(xiàn)本文所涉及的概念,你應(yīng)該為你所希望打開(kāi)并寫(xiě)入的文件提供完全路徑,并確保該文件位于你的Web根目錄之下。
然后,PHP的mysql_fetch_array函數(shù)把查詢變量$result轉(zhuǎn)換成一個(gè)數(shù)組,并按其關(guān)鍵字進(jìn)行循環(huán)。如果pgaeTitle在查詢所返回的欄之中,對(duì)每一行返回值都向字符串變量$_xml寫(xiě)入某些文本。
注意運(yùn)算符“.=”(它用來(lái)把XML格式的字符串當(dāng)作數(shù)值來(lái)拼接)讀取$row。當(dāng)循環(huán)結(jié)束的時(shí)候,根XML節(jié)點(diǎn)打印到變量$_xml之中,所有的變量用PHP的fwrite函數(shù)寫(xiě)入file.xml文件之中。
現(xiàn)在,屏幕上顯示出一個(gè)鏈接。確保這條鏈接指向你的XML文件的路徑,否則你無(wú)法看到這個(gè)格式化XML(該文件用PHP處理MySQL查詢而產(chǎn)生)。
分享:如何讓W(xué)ebServer返回指定XML內(nèi)容 通過(guò)創(chuàng)建WEBServer代理可以當(dāng)作本地類使用,但能不能返回指定的XML呢?比如通過(guò)checkpass服務(wù)檢測(cè)帳號(hào)和密碼之后要返回該用戶擁有的權(quán)限列表。怎么實(shí)現(xiàn)呢? ASP.NET Web服務(wù)支持在公
- xml創(chuàng)建節(jié)點(diǎn)(根節(jié)點(diǎn)、子節(jié)點(diǎn))
- WML開(kāi)發(fā)教程之 WAP網(wǎng)站服務(wù)器配置方法
- WMLScript的語(yǔ)法基礎(chǔ)
- 收集的WML Script標(biāo)準(zhǔn)函數(shù)庫(kù)
- WML教程之文本框控件Input
- 無(wú)線標(biāo)記語(yǔ)言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)
- xml文件的結(jié)構(gòu)解讀
- 關(guān)于XSL - XSL教程
- 選擇模式 - XSL教程 - 2
- XPath入門 - XSL教程 - 3
- 匹配模式 - XSL教程 - 4
- 測(cè)試模式 - XSL教程 - 5
Xml教程Rss訂閱編程教程搜索
Xml教程推薦
- XML入門的常見(jiàn)問(wèn)題(四)
- 給XML初學(xué)者建議
- 快速?gòu)囊粋(gè)XML文件中查找信息
- 基于XML的購(gòu)物車的實(shí)現(xiàn)
- 淺析XML字符串和XML DOCUMENT的相互轉(zhuǎn)換
- 如何用XMLHTTP對(duì)象抓取網(wǎng)頁(yè)源代碼,拆分?jǐn)?shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)
- XML HttpRequst對(duì)象基礎(chǔ)方法學(xué)習(xí)
- 采用XML數(shù)據(jù)來(lái)填充ASP表單
- 收集的WML Script標(biāo)準(zhǔn)函數(shù)庫(kù)
- XMLHTTP獲取web訪問(wèn)頭信息和網(wǎng)頁(yè)代碼
- 相關(guān)鏈接:
- 教程說(shuō)明:
Xml教程-用MySQL和PHP創(chuàng)建XML
。