码迷,mamicode.com
首页 > 编程语言 > 详细

php中将SimpleXMLElement Object转化为普通数组

时间:2015-10-08 20:08:59      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:

php中将SimpleXMLElement Object转化为普通数组

转: http://www.php230.com/transform-simplexmlelement-object-to-array-with-php.html

改成:属性和元素都作为数组的值

 

php代码:

<?
function xmlToArr($xml, $root = true)
{
		if(!$xml->children())
		{
			return (string)$xml;
		}
		$array = array();
		foreach($xml->children() as $element => $node)
		{
			$totalElement = count($xml->{$element});
			if(!isset($array[$element]))
			{
				$array[$element] = "";
			}
			// Has attributes
			if($attributes = $node->attributes())
			{
				$data = array();
				foreach($attributes as $attr => $value)
				{
					$data[$attr] = (string)$value;
				}

				if($totalElement > 1)
				{
					$data2 =  xmlToArr($node, false);
					$array[$element][] = array_merge($data,$data2);
				}
				else
				{
					$data2[‘value‘] = (count($node) > 0) ? xmlToArr($node, false) : (string)$node;
					$array[$element] = array_merge($data,$data2);
				}

			}
			else
			{
				if($totalElement > 1)
				{
					$array[$element][] = xmlToArr($node, false);
				}
				else
				{
					$array[$element] = xmlToArr($node, false);
				}
			}
		}
		if($root)
		{
			return array($xml->getName() => $array);
		}
		else
		{
			return $array;
		}
}

$array = array();
$xml=simplexml_load_file("manhua.xml");
print_r(xmlToArr($xml,false));

  manhua.xml

<?xml version="1.0" encoding="utf-8" ?>
<list>
  <manhua id="1" abc="2">
    <title tt="1">刀剑神域</title> 
    <test>
		<a>1</a>
		<b>2</b>
	</test>  
	<test>
		<a>11</a>
		<b>22</b>
	</test> 
    <dir>djsy</dir>
	<img>djsy.jpg</img>
    <info></info>
  </manhua>
    <manhua>
    <test>
		<a>1</a>
		<b>2</b>
	</test>  
	<test>
		<a>11</a>
		<b>22</b>
	</test> 
    <title>刀剑神域_calibur</title>  
    <dir>djsy_calibur</dir>
	<img>djsy_calibur.jpg</img>
    <info></info>
  </manhua>
    <manhua>
    <title>刀剑神域_fairydance</title>  
    <dir>djsy_fairydance</dir>
	<img>djsy_fairydance.jpg</img>
    <info></info>
  </manhua>
    <manhua>
    <title>刀剑神域_progressive</title>  
    <dir>djsy_progressive</dir>
	<img>djsy_progressive.jpg</img>
    <info></info>
  </manhua>
    <manhua>
    <title>刀剑神域_少女们的乐章</title>  
    <dir>djsy_snmdyz</dir>
	<img>djsy_snmdyz.jpg</img>
    <info></info>
  </manhua>
   <manhua>
    <title>刀剑神域_幽灵子弹</title>  
    <dir>djsy_youlingzidan</dir>
	<img>djsy_youlingzidan.jpg</img>
    <info></info>
  </manhua>
   <manhua>
    <title>小刀剑神域</title>  
    <dir>xiaodaojianshenyu</dir>
	<img>xiaodaojianshenyu.jpg</img>
    <info></info>
  </manhua>
   <manhua>
    <title>新娘summer</title>  
    <dir>xinian_summer</dir>
	<img>xinian_summer.jpg</img>
    <info></info>
  </manhua>
   <manhua>
    <title>Sword_ArtOnline_Silica_Edition</title>  
    <dir>Sword_ArtOnline_Silica_Edition</dir>
	<img>Sword_ArtOnline_Silica_Edition.jpg</img>
    <info></info>
  </manhua>
</list>

  

 

php中将SimpleXMLElement Object转化为普通数组

标签:

原文地址:http://www.cnblogs.com/jevil/p/4862082.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!