程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> php生成xml和轉換的代碼

php生成xml和轉換的代碼

編輯:PHP綜合
 PHP生成XML就像樹一樣,逐個添加節點,可以在一個父節點下添加多個子節點, function madeXML()

    注明:復制代碼請刪除代碼前的數字

  1. {  
  2.     //獲取模板信息  
  3.     $strTempInfo = $this->modelCmsObj->getTemplate('2007');  
  4.     $arrTemp = explode("#",$strTempInfo);  
  5.     array_shift($arrTemp);  
  6.     $arrContents = array();  
  7.     foreach($arrTemp as $k=>$v)  
  8.     {  
  9.         $arrContents[$k]=explode(",",$v);  
  10.     }  
  11.     //解析為XML文件  
  12.     $objDom = new DOMDocument("1.0");  
  13.     header("Content-Type: text/plain");   
  14.     //添加元素和文本節點  
  15.     $root = $objDom->createElement("recommend");  
  16.     $objDom->appendChild($root);  
  17.     foreach($arrContents as $k=>$v)  
  18.     {  
  19.     $item = $objDom->createElement("entry");  
  20.     $root->appendChild($item);  
  21.     $nextitem1 = $objDom->createElement("simgurl");  
  22.     $nextitem2 = $objDom->createElement("imgurl");  
  23.     $nextitem3 = $objDom->createElement("fileurl");  
  24.     $item->appendChild($nextitem1);  
  25.     $item->appendChild($nextitem2);  
  26.     $item->appendChild($nextitem3);  
  27.     $text1 = $objDom->createTextNode($v[0]);  
  28.     $text = $objDom->createTextNode($v[1]);  
  29.     $text2 = $objDom->createTextNode($v[2]);  
  30.     $nextitem2->appendChild($text1);  
  31.     $nextitem3->appendChild($text2);  
  32.     $nextitem1->appendChild($text);  
  33.     }  
  34.  
  35.     echo $objDom->saveXML();  

simplexml_load_string把XML串轉化為字符串

  1. <?PHP  
  2. $string = <<<XML//聲明XML文檔  
  3. <?XML version='1.0'?>   
  4. <document>  
  5. <title>Forty What?</title>  
  6. <from>Joe</from>  
  7. <to>Jane</to>  
  8. <body>  
  9.   I know that's the answer -- but what's the question?  
  10. </body>  
  11. </document>  
  12. XML;  
  13.  
  14. $XML = simpleXML_load_string($string);  
  15.  
  16. var_dump($XML);  
  17. ?>   
  18.  
  19.  
  20. This script will display:   
  21.  
  22. SimpleXMLElement Object  
  23. (  
  24.   [title] => Forty What?  
  25.   [from] => Joe  
  26.   [to] => Jane  
  27.   [body] =>  
  28.    I know that's the answer -- but what's the question?  
  29. )  
  30.   

 如果想把XML轉換為數組,先轉換為字符串含有鍵值的字符串,然後再進行循環就可以成為數組了,

  1. /**  
  2.  * XML轉換為數組  
  3.  * @param unknown_type $XML  
  4.  */ 
  5. private function XML_to_array($XML)  
  6. {  
  7.           $array = (array)(simpleXML_load_string($XML,'SimpleXMLElement', LIBXML_NOCDATA));  
  8.           foreach ($array as $key=>$item){  
  9.             $array[$key]  = $this->struct_to_array((array)$item);  
  10.           }  
  11.           return $array;  
  12. }  
  13.  
  14. private function struct_to_array($item) {  
  15.           if(!is_string($item)) {  
  16.             $item = (array)$item;  
  17.             foreach ($item as $key=>$val){  
  18.               $item[$key]  =  self::struct_to_array($val);  
  19.             }  
  20.           }  
  21.           return $item;  
  22. }
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved