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

講解PHP生成xml源代碼

編輯:關於PHP編程

php生成xml就像樹一樣,逐個添加節點,可以在一個父節點下添加多個子節點,
function madexml()
{  
        //獲取模板信息  
        $strTempInfo = $this->modelCmsObj->getTemplate(2007);  
        $arrTemp = explode("#",$strTempInfo);  
        array_shift($arrTemp);  
        $arrContents = array();  
        foreach($arrTemp as $k=>$v)  
        {  
                $arrContents[$k]=explode(",",$v);  
        }  
        //解析為xml文件  
        $objDom = new DOMDocument("1.0");  
        header("Content-Type: text/plain");   
        //添加元素和文本節點  
        $root = $objDom->createElement("recommend");  
        $objDom->appendChild($root);  
        foreach($arrContents as $k=>$v)  
        {  
                $item = $objDom->createElement("entry");  
                $root->appendChild($item);  
                $nextitem1 = $objDom->createElement("simgurl");  
                $nextitem2 = $objDom->createElement("imgurl");  
                $nextitem3 = $objDom->createElement("fileurl");  
                $item->appendChild($nextitem1);  
                $item->appendChild($nextitem2);  
                $item->appendChild($nextitem3);  
                $text1 = $objDom->createTextNode($v[0]);  
                $text = $objDom->createTextNode($v[1]);  
                $text2 = $objDom->createTextNode($v[2]);  
                $nextitem2->appendChild($text1);  
                $nextitem3->appendChild($text2);  
                $nextitem1->appendChild($text);  
        }  
        echo $objDom->saveXML();  
}

simplexml_load_string把xml串轉化為字符串
<?php  
    $string = <<<XML//聲明xml文檔  
    <?xml version=1.0?>   
    <document>  
    <title>Forty What?</title>  
    <from>Joe</from>  
    <to>Jane</to>  
    <body>  
    I know thats the answer -- but whats the question?  
    </body>  
    </document>  
    XML;  
    $xml = simplexml_load_string($string);  
    var_dump($xml);  
?>   

   This script will display:   
   SimpleXMLElement Object  
     (  
     [title] => Forty What?  
     [from] => Joe  
     [to] => Jane  
     [body] =>  
      I know thats the answer -- but whats the question?  
   )  
     

 如果想把xml轉換為數組,先轉換為字符串含有鍵值的字符串,然後再進行循環就可以成為數組了,
    /**  
     * xml轉換為數組  
     * @param unknown_type $xml  
     */
    private function xml_to_array($xml)  
    {  
              $array = (array)(simplexml_load_string($xml,SimpleXMLElement, LIBXML_NOCDATA));  
              foreach ($array as $key=>$item){  
                $array[$key]  = $this->struct_to_array((array)$item);  
             }  
             return $array;  
   }  
    
   private function struct_to_array($item) {  
             if(!is_string($item)) {  
               $item = (array)$item;  
               foreach ($item as $key=>$val){  
                 $item[$key]  =  self::struct_to_array($val);  
               }  
             }  
             return $item;  
   }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved