當前位置:首頁 > PHP教程 > php高級應用 > 列表

PHP使用XMLWriter讀寫xml文件操作的教程

發布:smiling 來源: PHP粉絲網  添加日期:2018-11-15 09:46:39 瀏覽: 評論:0 

本文實例講述了PHP使用XMLWriter讀寫xml文件操作。分享給大家供大家參考,具體如下:米撲科技旗下的多個產品,需要腳本自動生成sitemap.xml,于是重新溫習一遍PHP XML讀寫操作。

讀寫xml的方式,主要圍繞XMLWriter和XMLReader進行,前者用于生成xml,后者則是用來讀取并解析xml

寫入 xml

test_xml_write.php

  1. <!--?php 
  2. /** 
  3.  * mimvp.com 
  4.  * 2017.06.22 
  5.  */ 
  6. header("Content-type: text/html; charset=utf-8"); 
  7. $xml = new XMLWriter(); 
  8. $xml--->openUri("php://output");  // 輸出到網頁控制臺 
  9. $xml->openUri("mimvp.xml");   // 輸出到文件,需要讀寫權限,推薦 chmod 766 mimvp.xml 
  10. // 設置縮進字符串 
  11. $xml->setIndentString("\t"); 
  12. $xml->setIndent(true); 
  13. // xml文檔開始 
  14. $xml->startDocument('1.0''utf-8'); 
  15. // 創建根節點 
  16. $xml->startElement("MimvpInfo"); 
  17.   // 節點1 
  18.   $xml->startElement("Item"); 
  19.     $xml->writeAttribute("info","1");  // 屬性 
  20.       $xml->startElement("id"); 
  21.       $xml->text("01"); 
  22.       $xml->endElement(); 
  23.       $xml->startElement("name"); 
  24.       $xml->text("米撲代理"); 
  25.       $xml->endElement(); 
  26.   $xml->endElement(); 
  27.   // 節點2 
  28.   $xml->startElement("Item"); 
  29.     $xml->writeAttribute("info","1");  // 屬性 
  30.       $xml->startElement("id"); 
  31.       $xml->text("02"); 
  32.       $xml->endElement(); 
  33.       $xml->startElement("name"); 
  34.       $xml->text("米撲財富"); 
  35.       $xml->endElement(); 
  36.   $xml->endElement(); 
  37. $xml->endElement(); 
  38. $xml->endDocument(); 
  39. //header("Content-type: text/xml"); 
  40. //取得緩沖區里的xml字符串 
  41. //echo $xml->outputMemory(); 
  42. ?> 

輸出mimvp.xml文件內容:

  1. <!--?xml version="1.0" encoding="UTF-8"?--> 
  2. <mimvpinfo> 
  3.   <item info="1"> 
  4.     <id>01</id> 
  5.     <name>米撲代理</name> 
  6.   </item> 
  7.   <item info="1"> 
  8.     <id>02</id> 
  9.     <name>米撲財富</name> 
  10.   </item> 
  11. </mimvpinfo> 

注意:

1. 新建mimvp.xml 文件:

touch mimvp.xml

2. 授權mimvp.xml 文件:

chmod 766 mimvp.xml

讀取 xml

test_xml_read.php

  1. <!--?php 
  2. /** 
  3.  * mimvp.com 
  4.  * 2017.06.22 
  5.  */ 
  6. header ( "Content-type: text/html; charset=utf-8" ); 
  7. $xml = new XMLReader (); 
  8. // 載入xml文件,如果是字符串直接使用xml方法 
  9. $xml--->open ( "mimvp.xml" ); 
  10. // 開始讀取xml 
  11. while ( $xml->read () ) { 
  12.   // 根據節點類型和元素名稱取得文本節點或屬性 
  13.   if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == 'item') { 
  14.     print $xml->getAttribute ( "info" ) . "<br>"
  15.   } 
  16.   if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == 'id') { 
  17.     $xml->read ();  // 移動指針到下一個節點 
  18.     print $xml->value . "\t"
  19.   } 
  20.   if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == 'name') { 
  21.     $xml->read (); 
  22.     print $xml->value . "<br>"
  23.   } 
  24.   if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == 'age') { 
  25.     $xml->read (); 
  26.     print $xml->value . "<br>"
  27.   } 
  28. ?> 

輸出結果:

01 米撲代理

02 米撲財富

源代碼及應用

請見米撲科技的Github: https://github.com/mimvp/sitemap-php

Tags: XMLWriter 讀寫xml

分享到:

相關文章

福利彩票25选5开奖结果