欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

xml转json,怎么筛选数据?

程序员文章站 2022-06-11 16:32:47
...
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:0046

24 7475002013-08-19 00:02:00AM

110171676我是大美人2013-08-19 01:15:0046

24 7450102013-08-19 01:15:00AM

110171677李四2013-08-19 02:09:0046

24 64519714112013-08-19 02:09:00AMXML;$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 =  

110171675张三2013-08-19 00:02:0046

24 7475002013-08-19 00:02:00AM

110171676我是大美人2013-08-19 01:15:0046

24 7450102013-08-19 01:15:00AM

110171677李四2013-08-19 02:09:0046

24 64519714112013-08-19 02:09:00AMXML;$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"}]