Home > php教程 > php手册 > 讲解PHP生成xml源代码

讲解PHP生成xml源代码

WBOY
Release: 2016-06-13 10:40:34
Original
897 people have browsed it

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串转化为字符串
    $string =        
      
    Forty What?  
    Joe  
    Jane  
      
    I know thats the answer -- but whats the question?  
      
    
 
    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;  
   }

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template