-
- header("content-type:text/html; charset=utf-8"); //指定PHP使用UTF-8編碼
- $xml = simplexml_load_file ("example.xml"); //讀取xml檔
- $newxml = $xml->asXML(); //標準化$xml
- $fp = fopen("newxml.xml", "w" ); //新xml檔
- fwrite($fp, $newxml); //寫入-------xml檔
- fclose($fp);
複製程式碼
php可以方便的產生和讀取xml檔。
主要透過DOMDocument、DOMElement和DOMNodeList來完成XML的讀取與寫入操作。
以下為大家介紹如何使用這些類別,供大家學習參考。
一.產生XML檔
對於一個如下XML檔。
-
- PHP訪問mysql資料庫初級篇
-
http://blog.csdn.net/morewindows/article/details/7102362
- PHP存取MySql資料庫初級篇
-
http://blog.csdn.net/morewindows /article/details/7102362
-
複製程式碼
我們來看看如何用PHP來產生:
先new一個DOMDocument物件並設定編碼格式。
-
- $dom = newDOMDocument('1.0', 'UTF-8');
- $dom->formatOutput= true;
$dom->formatOutput= true;
複製程式碼
再建立結點和 $rootelement =$dom->createElement("article"); $title =$dom->createElement("title", "PHP存取MySql資料庫初級篇");
複製程式碼
然後建立帶有文字內容的
$link =$dom->createElement("link","http://blog.csdn.net/morewindows/article/details/7102362" );
複製程式碼
也可以先生成 結點再為其加入文字內容。
-
-
-
-
$link = $dom->createElement("link"); $linktext =$dom->createTextNode('http://blog .csdn.net/morewindows/article/details/7102362'); $link->appendChild($linktext);
複製程式碼
$rootelement->appendChild($title); $rootelement->appendChild($link);
$rootelement->appendChild($link);
- $rootelement->appendChild($link);
-
$rootelement->appendChild($link);
$rootelement->appendChild($link);
$rootelement->appendChild($link);$rootelement->appendChild($link);
$rootelement->appendChild($link);
- $根>複製程式碼
-
最後將結點加入DOMDocument物件中,
$dom->appendChild($rootelement);複製程式碼複製程式碼這樣一個完整的XML就生成完畢了。再整出整個XML,
echo $dom->saveXML() ;複製代碼saveXML()也可以只輸入部分XML文本,如echo $dom->saveXML($link);就只會輸出結點:http://blog.csdn.net/morewindows /article/details/7102362
下面再給一個完整的PHP中資料內容輸出到XML檔的範例。此範例會對將一個PHP陣列輸出到XML檔案中。
-
-
//將陣列輸出到XML檔案
- // by MoreWindows( http://blog.csdn.net /MoreWindows )
- $article_array = array(
- "第一篇" => array(
- "title"=>"PHP存取MySql資料庫初級篇",
- "link"=>"http ://blog.csdn.net/morewindows/article/details/7102362"
- ),
- "第二篇" => array(
- "title"=>"PHP存取MySql資料庫中級篇Smarty技術",
- "link"=>"http://blog.csdn.net/morewindows/article/details/7094642"
- ),
- "第三篇" => array(
- "title"=>"PHP訪問MySql資料庫高級篇AJAX技術",
- "link"=>"http://blog.csdn.net/morewindows/article/details/7086524"
- ),
- );
- $dom = new DOMDocument('1.0', 'UTF-8');
- $dom->formatOutput = true;
- $rootelement = $dom->createElement("MoreWindows") ;
- foreach ($article_array as $key=>$value)
- {
- $article = $dom->createElement("article", $key);
- $title = $dom-> createElement("title", $value['title']);
- $link = $dom->createElement("link", $value['link']);
- $article->appendChild($ title);
- $article->appendChild($link);
- $rootelement->appendChild($article);
- }
- $dom->appendChild($rootelement);
- $ filename = "D:test.xml";
- echo 'XML檔案大小' . $dom->save($filename) . '位元組';
- ?>
複製代碼
#-------------------
-
-
//將陣列輸出到XML檔案
- // by MoreWindows( http://blog.csdn.net /MoreWindows )
- $article_array = array(
- "第一篇" => array(
- "title"=>"PHP存取MySql資料庫初級篇",
- "link"=>"http ://blog.csdn.net/morewindows/article/details/7102362"
- ),
- "第二篇" => array(
- "title"=>"PHP存取MySql資料庫中級篇Smarty技術",
- "link"=>"http://blog.csdn.net/morewindows/article/details/7094642"
- ),
- "第三篇" => array(
- "title"=>"PHP訪問MySql資料庫高級篇AJAX技術",
- "link"=>"http://blog.csdn.net/morewindows/article/details/7086524"
- ),
- );
- $dom = new DOMDocument('1.0', 'UTF-8');
- $dom->formatOutput = true;
- $rootelement = $dom->createElement("MoreWindows") ;
- foreach ($article_array as $key=>$value)
- {
- $article = $dom->createElement("article", $key);
- $title = $dom-> createElement("title", $value['title']);
- $link = $dom->createElement("link", $value['link']);
- $article->appendChild($ title);
- $article->appendChild($link);
- $rootelement->appendChild($article);
- }
- $dom->appendChild($rootelement);
- $ filename = "D:test.xml";
- echo 'XML檔案大小' . $dom->save($filename) . '位元組';
- ?>
複製代碼
執行此PHP會在D碟上產生test.xml檔(Win7 + XAMPP + IE9.0測試通過)
二.讀取XML檔
以讀取前文產生的D:test.xml為例:
-
-
//讀取XML檔
- // by MoreWindows( http://blog. csdn.net/MoreWindows )
- $filename = "D:test.xml";
- $article_array = array();
$dom = new DOMDocument('1.0', 'UTF-8');
- $dom->load($filename);
//得到結點- $articles = $dom->getElementsByTagName( "article");
- echo ' 結點個數' . $articles->length;
- foreach ($articles as $article)
- {
- $id = $article-> getElementsByTagName("id")->item(0)->nodeValue;
- $title = $article->getElementsByTagName("title")->item(0)->nodeValue;
- $link = $article ->getElementsByTagName("link")->item(0)->nodeValue;
- $article_array[$id] = array('title'=>$title, 'link'=>$link);
- }
//輸出結果
- echo "
";
- var_dump($article_array);
- echo "";
- ?>
-
複製程式碼
#-----------------
-
-
//讀取XML檔
- // by MoreWindows( http://blog. csdn.net/MoreWindows )
- $filename = "D:test.xml";
- $article_array = array();
$dom = new DOMDocument('1.0', 'UTF-8');
- $dom->load($filename);
//得到結點- $articles = $dom->getElementsByTagName( "article");
- echo ' 結點個數' . $articles->length;
- foreach ($articles as $article)
- {
- $id = $article-> getElementsByTagName("id")->item(0)->nodeValue;
- $title = $article->getElementsByTagName("title")->item(0)->nodeValue;
- $link = $article ->getElementsByTagName("link")->item(0)->nodeValue;
- $article_array[$id] = array('title'=>$title, 'link'=>$link);
- }
//輸出結果
- echo "
";
- var_dump($article_array);
- echo "";
- ?>
-
複製程式碼
|