Heim > Backend-Entwicklung > PHP-Tutorial > 多维PHP数组如何转换成xml格式的数据?

多维PHP数组如何转换成xml格式的数据?

WBOY
Freigeben: 2016-06-23 14:23:33
Original
947 Leute haben es durchsucht

php数组 xml

PHP数组是这样的:
array(4) { 	["auth"]=> array(3) 	{		["user"]=> string(8) "customer" 		["password"]=> string(8) "password" 		["context"]=> string(1) "4" 	} 	["owner"]=> array(2) 	{ 		["user"]=> string(9) "customer2" 		["context"]=> string(1) "4" 	} 	["language"]=> string(2) "en" 	["task"]=> array(1) 	{ 		["code"]=> string(4) "0130" 	} }
Nach dem Login kopieren


转换成xml格式后的数据格式是这样的:
<?xml version="1.0" encoding="utf-8"?><request>	<auth>		<user>customer</user>		<password>password</password>		<context>4</context>	</auth>	<owner>		<user>customer2</user>		<context>4</context>	</owner>	<language>en</language>	<task>		<code>0130</code>	</task></request>
Nach dem Login kopieren


回复讨论(解决方案)

 $ar=array( 	"auth"=> array 	(		"user"=>  "customer" ,		"password"=>  "password" ,		"context"=>  "4" 	) ,	"owner"=> array 	( 		"user"=>  "customer2" ,		"context"=>  "4" 	) ,	"language"=>  "en" ,	"task"=> array	( 		"code"=>  "0130" 	) );$doc = new DOMDocument('1.0','UTF-8');// we want a nice output$doc->formatOutput = true;$root = $doc->createElement('request');$root = $doc->appendChild($root); foreach($ar as $title=>$title_v){   $title = $doc->createElement($title);   $title = $root->appendChild($title);     if(is_array($title_v)){       foreach($title_v as $k=>$v){	       $k = $doc->createElement($k);           $k = $title->appendChild($k);		   $text = $doc->createTextNode($v);           $text = $k->appendChild($text);	   }    }else{       $text = $doc->createTextNode($title_v);       $text = $title->appendChild($text);   }}echo $doc->saveXML();
Nach dem Login kopieren

$ar = array( 	"auth" => array( 		"user" => "customer",		"password" => "password",		"context" => "4",	),	"owner" => array( 		"user" => "customer2",		"context" => "4",	),	"language" => "en",	"task" => array( 		"code" => "0130",	), );$xml = simplexml_load_string('<request />');create($ar, $xml);echo $xml->saveXML();function create($ar, $xml) {	foreach($ar as $k=>$v) {		if(is_array($v)) {			$x = $xml->addChild($k);			create($v, $x);		}else $xml->addChild($k, $v);	}}
Nach dem Login kopieren
<?xml version="1.0" ?> <request>	<auth>		<user>customer</user> 		<password>password</password> 		<context>4</context> 	</auth>	<owner>		<user>customer2</user> 		<context>4</context> 	</owner>	<language>en</language> 	<task>		<code>0130</code> 	</task></request>
Nach dem Login kopieren
Quelle:php.cn
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