xml中对象转化为数组

<?php
header('content-type:text/html;charset=utf-8');
/*
 * simplexml的DOM对象处理xml也可已处理html
 * */
$simple = simplexml_load_file('./index.xml');
/*
 * simple加载完成之后有数组也有对象
 * 下面xml对象转为数组
 * 用到的是递归
 * */
function toArray($sim) {
	$arr = (array)$sim;
	foreach ($arr as $k => $v) {
		if ($v instanceof SimpleXMLElement || is_array($v)) {
			$arr[$k] = toArray($v);
		}
	}
	return $arr;
}

//print_r(toArray($simple));die;
/*
 * 一维数组转换为xml
 * */
$arr = array('man' => '漫', 'ge' => '哥');
function arrtoXml($arr) {
	$simplexml = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><root></root>');
	foreach ($arr as $k => $v) {
		$simplexml -> addChild($k, $v);
	}
	return $simplexml -> saveXML();
}

//echo arrtoxml($arr);die;
//header('content-type:text/xml;charset=utf-8');

/*
 * 多维维数组转为xml对象
 * */
$result = array(2,3,3,3,3,'name' => '哥哥', 'title' => '标题', 'age' => 25, 'boos' => array('key' => '键', 'value' => '值', 'array' => array('ma' => '骂你咋了啊'), 'bo' => array(0, 1)));
function toarrayXml($result, $node = null) {
	if ($node === null) {
		$simplexml = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><root></root>');
	} else {
		$simplexml = $node;
	}
	foreach ($result as $k => $v) {
		if (is_array($v)) {
			toarrayXml($v, $simplexml -> addChild($k));
		} else if (is_numeric($k)) {
			$simplexml -> addChild('manman' . $k, $v);
		} else {
			$simplexml -> addChild($k, $v);

		}
	}
	/*
	 * 直返会输出并不保存
	 * */
	return $simplexml -> saveXML();
}
/*header('content-type:text/xml;charset=utf-8');
echo toarrayXml($result);*/
/* 下面是模板
 * 打印之前把其他的注释去掉
<?xml version="1.0" encoding="utf-8"?>
<bookstore>
	<book>
		<title>天龙八部</title>
		<price>28.8</price>
	</book>
	<book>
		<title>武侠小说</title>
		<price>29.9</price>
	</book>
</bookstore>
 * */

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值