張博
摘 要:通過PHP的預定義類,PHP可以在任何時候操作XML文檔中的數據,實現文檔內容的顯示、添加、修改、刪除。
關鍵詞:PHP;XML;類定義;操作
1 創建XML文檔
如有以下class.xml文檔。
<?xml version="1.0" encoding="gb2312"?>
2 PHP對XML文檔的操作
2.1 PHP實現對XML文檔結構的遍歷與內容的顯示
要實現對XML文檔結構的遍歷與內容的顯示,則需要用到以下方法:
⑴Load():Mixed load(string filename);用于加載一個filename指定名稱的xml文件。
⑵getElementByTagName():DOMNodeListgetElementByTagNames(string name);返回一個節點列表,參數name為指定標簽的名稱。
⑶item():DomNode item(int index);返回dom節點列表中的指定節點,參數index為指定的項數。
⑷顯示class.xml內容的相關代碼:
<?php
$dom=new DOMDocument;
$dom->load("class.xml");
$root=$dom->getElementsByTagName("CLASS");
$root=$root->item(0);
$uid=$dom->getElementsByTagName("STUDENT");
foreach ($uid as $uidData){
foreach ($uidData->attributes as $attrib){
echo $attribName=$attrib->nodeName.":";
echo $attribValue=$attrib->nodeValue;
echo "
";}}?>。
2.1 添加XML數據
添加XML數據就是對其節點的操作,相關步驟如下:
⑴找到需要添加節點的父節點
$root=$dom->getElementsByTagName("CLASS");
$root=$root->item(0);
⑵在這個父節點中創建子節點
$newclass=$root->appendChild(new DOMElement('STUDENT'));
⑶在子節點中添加屬性和值
$newclass->setAttributeNode(new DOMAttr("attributename", "values"));其中"attributename"為子節點中的屬性名,"values"為添加的屬性值。
⑷保存文件。$dom->save("class.xml");
⑸向class.xml文檔中添加數據的主要代碼是:
$newclass->setAttributeNode(new DOMAttr("no", "003"));
$newclass->setAttributeNode(new DOMAttr("name", "alice"));
$newclass->setAttributeNode(newDOMAttr("tel","027567"));
$dom->save("class.xml");
2.3 修改XML數據
對XML文檔數據的修改,其實就是找到滿足條件的節點記錄,對相應的屬性賦予新的值,并添加到原來的XML文件中,還是以class.xml文件為例,主要代碼是:
foreach ($class as $newchann){
foreach ($newchann->attributes as $newAttri){
if($newAttri->nodeName=="no"){
if($newAttri->nodeValue=="003"){
$newchann->setAttribute("tel","888888");//使用函數對tel的值進行更改}}。
2.4 刪除XML數據
對XML數據的刪除,主要用到了函數 DOMNode removeChild(DOMNode oldnode),
DOMNode oldnode為要刪除的某個數據項,并將刪除的后的文檔數據重新存于另外一個xml文檔。主要代碼為:
$del=$class->item(1);
$all->removeChild($del);
$dom->save("temp.xml");
$dom->load("temp.xml");表示刪除后的XML數據將保存在temp.xml文件中。
3 結語
PHP操作XML文件,主要是應用PHP預定義的用于操作XML文件的類及類中相關的方法實現的,在目前常見的新聞發布、論壇中,通過讀取XML文件中的數據顯示、添加、修改相關內容都是在以上基礎操作上再次細化設計而成,其應用成果都得以廣范應用。
[參考文獻]
[1]許登旺,鄒天思,潘凱華.PHP程序開發范例寶典.明日科技.人民郵電出版社,2007.10.
[2]丘廣華,張文敏.XML編程實例教程.科學出版社,2004.04.