Maison  >  Article  >  développement back-end  >  讲解PHP生成xml源代码_PHP教程

讲解PHP生成xml源代码_PHP教程

WBOY
WBOYoriginal
2016-07-13 17:41:45823parcourir

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;  
   }

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/486096.htmlTechArticlephp生成xml就像树一样,逐个添加节点,可以在一个父节点下添加多个子节点, function madexml() { //获取模板信息 $strTempInfo = $this-modelCmsObj-get...
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn