青锋幽灵 9年前1月19日 阅读:983 评论:1
class jsonToXml {
public static function convert($data, DOMDocument $dom = null, DOMElement $xml = null) {
if(!$dom) {
$dom = new DOMDocument('1.0', 'UTF-8');
$dom->formatOutput = true;
}
if(!$xml) {
$xml = $dom->createElement('xml');
$xml->setAttribute('root', 'http://www.ghostwei.com'); //设置一些属性
$dom->appendChild($xml);
}
foreach($data As $key => $val) {
$key = !is_string($key) ? $xml->tagName : $key;
if(is_array($val) && count($val) && preg_match('/^[\d]+$/', implode('', array_keys($val)))) {
foreach($val As $k => $v) {
$e = $dom->createElement($key);
$xml->appendChild($e);
if(is_object($v) || is_array($v)) {
self::convert($v, $dom, $e);
continue;
}
if(is_string($v) && preg_match('/<[^>]+>/', $v)) {
$e->appendChild($dom->createCDATASection($v));
} else {
$e->nodeValue = htmlspecialchars((string) $v);
}
}
continue;
}
if((is_object($val) || is_array($val)) && count($val)) {
$e = $dom->createElement($key);
$xml->appendChild($e);
self::convert($val, $dom, $e);
continue;
}
if((is_object($val) || is_array($val)) && !count($val)) {
$xml->appendChild($dom->createElement($key));
continue;
}
$e = $dom->createElement($key);
$xml->appendChild($e);
if(is_string($val) && preg_match('/<[^>]+>/', $val)) {
$e->appendChild($dom->createCDATASection($val));
} else {
$e->nodeValue = htmlspecialchars((string) $val);
}
}
return $dom->saveXML();
}
}header('Content-Type:text/xml; charset=utf-8');
echo jsonToXml::convert($json);stdClass Object
(
[com] => ghostwei
[nu] => 61693388
[message] => ok
[status] => 1
[state] => 1
[data] => Array
(
[0] => stdClass Object
(
[time] => 2016-11-07 11:40:41
[context] => 包裹已揽收
)
[1] => stdClass Object
(
[time] => 2016-11-07 11:46:10
[context] => Parcel Departure Scan
)
[2] => stdClass Object
(
[time] => 2016-12-13 12:42:49
[context] => 包裹已到达 Markham(ON) 转运中心
)
[3] => stdClass Object
(
[time] => 2016-12-13 12:57:24
[context] => 包裹已到达 Markham(ON) 转运中心
)
[4] => stdClass Object
(
[time] => 2016-12-13 13:04:08
[context] => 包裹已取消发货,返回收货点,原因:test
)
)
)
゛. - 看過世间最冷漠滴眼神, 爱過⒈生最无缘滴人﹎
青锋幽灵 19年前2月16日
Koolan94520 20年前3月5日
青锋幽灵 14年前9月30日
Koolan94520 20年前2月17日
青锋幽灵 13年前10月23日
yanghui 20年前4月28日
青锋幽灵 18年前6月7日
青锋幽灵 21年前6月28日
青锋幽灵 19年前4月5日
青锋幽灵 17年前10月25日
unknown
不错
回复 8年前7月8日 175.0.30.164