xml转json,怎么筛选数据?

原创
2016-06-23 14:19:40616浏览

JSON XML

下边的xml,想转为json
但P节点下只需要这两个节点的数据,其他数据不需要。
如果直接用json_encode转出来,是所有的数据
请问怎么能转为json,但只要的数据,怎么弄?

例如
{"PN":"\u7b2c\u4e00\u5468\u64ad\u5267\u573a\uff1a\u8ffd\u9c7c\u4f20\u5947 31","PT":"2013-08-19 22:01:00"}

-------xml---------



110171675
张三
2013-08-19 00:02:00
46
24
74750
0
2013-08-19 00:02:00
AM



110171676
我是大美人
2013-08-19 01:15:00
46
24
74501
0
2013-08-19 01:15:00
AM



110171677
李四
2013-08-19 02:09:00
46
24
64519
71411
2013-08-19 02:09:00
AM




回复讨论(解决方案)

$string = <<  

110171675 张三 2013-08-19 00:02:00 46 24 74750 0 2013-08-19 00:02:00 AM

110171676 我是大美人 2013-08-19 01:15:00 46 24 74501 0 2013-08-19 01:15:00 AM

110171677 李四 2013-08-19 02:09:00 46 24 64519 71411 2013-08-19 02:09:00 AM

XML;$xml = simplexml_load_string($string);foreach($xml->P as $item){ $item=(array)$item; $arr[]=array('PN'=>$item['PN'],'PT'=>$item['PT']);}echo json_encode($arr);

[{"PN":"\u5f20\u4e09","PT":"2013-08-19 00:02:00"},{"PN":"\u6211\u662f\u5927\u7f8e\u4eba","PT":"2013-08-19 01:15:00"},{"PN":"\u674e\u56db","PT":"2013-08-19 02:09:00"}]

$xml =<<< XML  

110171675 张三 2013-08-19 00:02:00 46 24 74750 0 2013-08-19 00:02:00 AM

110171676 我是大美人 2013-08-19 01:15:00 46 24 74501 0 2013-08-19 01:15:00 AM

110171677 李四 2013-08-19 02:09:00 46 24 64519 71411 2013-08-19 02:09:00 AM

XML;$sm = simplexml_load_string($xml);foreach($sm->P as $item) { $r[] = array('PN' => strval($item->PN), 'PT' => strval($item->PT));}echo json_encode($r);
[{"PN":"\u5f20\u4e09","PT":"2013-08-19 00:02:00"},{"PN":"\u6211\u662f\u5927\u7f8e\u4eba","PT":"2013-08-19 01:15:00"},{"PN":"\u674e\u56db","PT":"2013-08-19 02:09:00"}]

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
PHP中文网
程序员·梦开始的地方
下载APP