Heim > Backend-Entwicklung > PHP-Tutorial > php生成xml和转换[源码]

php生成xml和转换[源码]

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-01 14:24:26
Original
1185 Leute haben es durchsucht

 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();  
}
Nach dem Login kopieren

simplexml_load_string把xml串转化为字符串

$string = <<<XML//声明xml文档  
<?xml version='1.0'?>   
<document>  
<title>Forty What?</title>  
<from>Joe</from>  
<to>Jane</to>  
<body>  
  I know that's the answer -- but what's the question?  
</body>  
</document>  
XML;  

$xml = simplexml_load_string($string);  
var_dump($xml); 
Nach dem Login kopieren

以上代码将输出:

SimpleXMLElement Object  
(  
  [title] => Forty What?  
  [from] => Joe  
  [to] => Jane  
  [body] =>  
   I know that's the answer -- but what's the question?  
)  
Nach dem Login kopieren

如果想把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;  
} 
Nach dem Login kopieren
Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage