Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

How to transform xml and array into each other

2025-03-28 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >

Share

Shulou(Shulou.com)06/03 Report--

这篇文章主要介绍了xml与array如何互相转化,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

php在做后台服务器的时候,经常会遇到这种情况,需要解析来自前台的xml文件,并将数据以xml格式返回,在这种情况下,xml与php中关联数组的转化是非常频繁的事情。比如flex和其他客户端程序与服务器的交互,经常会使用这种方法。

代码如下:

/**

*

* 将简单数组转化为简单的xml

* @param string $data 要进行转化的数组

* @param string $tag 要使用的标签

* @example

* $arr = array(

'rtxAccount'=>'aaron','ipAddr'=>'192.168.0.12',

'conferenceList'=>array('conference'=>

array(

array('conferenceId'=>1212,'conferenceTitle'=>'quanshi 444','smeAccount'=>'https://www.jb51.net'),

array('conferenceId'=>454,'conferenceTitle'=>'quanshi meetting','smeAccount'=>'https://www.jb51.net'),

array('conferenceId'=>6767,'conferenceTitle'=>'quanshi meetting','smeAccount'=>'https://www.jb51.net'),

array('conferenceId'=>232323,'conferenceTitle'=>'quanshi uuu','smeAccount'=>'https://www.jb51.net'),

array('conferenceId'=>8989,'conferenceTitle'=>'quanshi meetting','smeAccount'=>'https://www.jb51.net'),

array('conferenceId'=>1234343212,'conferenceTitle'=>'quanshi meetting','smeAccount'=>'https://www.jb51.net')

)

)

);

转化为:

aaron

192.168.0.12

1212

quanshi 444

https://www.jb51.net

454

quanshi meetting

https://www.jb51.net

6767

quanshi meetting

https://www.jb51.net

232323

quanshi uuu

https://www.jb51.net

8989

quanshi meetting

https://www.jb51.net

1234343212

quanshi meetting

https://www.jb51.net

*/

function array2xml($data,$tag = '')

{

$xml = '';

foreach($data as $key => $value)

{

if(is_numeric($key))

{

if(is_array($value))

{

$xml .= "";

$xml .= array2xml($value);

$xml .="";

}

else

{

$xml .= "$value";

}

}

else

{

if(is_array($value))

{

$keys = array_keys($value);

if(is_numeric($keys[0]))

{

$xml .=array2xml($value,$key);

}

else

{

$xml .= "";

$xml .=array2xml($value);

$xml .= "";

}

}

else

{

$xml .= "$value";

}

}

}

return $xml;

}

}

xml2array

复制代码 代码如下:

/**

*

* 将简单的xml转化成关联数组

* @param string $xmlString xml字符串

* @example

*

IT交流会

2011-12-19 12:00:00

andy1111111

192.168.1.56

120

1

被邀请人1的RTX账号

被邀请人1电话号码

被邀请人2的RTX账号

被邀请人2电话号码

转化之后的关联数组:

Array

(

[conferenceTitle] => IT交流会

[startTime] => 2011-12-19 12:00:00

[rtxAccount] => andy1111111

[ipAddr] => 192.168.1.56

[duration] => 120

[conferenceType] => 1

[invitees] => Array

(

[invitee] => Array

(

[0] => Array

(

[rtxAccount] => 被邀请人1的RTX账号

[tel] => 被邀请人1电话号码

)

[1] => Array

(

[rtxAccount] => 被邀请人2的RTX账号

[tel] => 被邀请人2电话号码

)

)

)

)

*/

function xml2array($xmlString = '')

{

$targetArray = array();

$xmlObject = simplexml_load_string($xmlString);

$mixArray = (array)$xmlObject;

foreach($mixArray as $key => $value)

{

if(is_string($value))

{

$targetArray[$key] = $value;

}

if(is_object($value))

{

$targetArray[$key] = xml2array($value->asXML());

}

if(is_array($value))

{

foreach($value as $zkey => $zvalue)

{

if(is_numeric($zkey))

{

$targetArray[$key][] = xml2array($zvalue->asXML());

}

if(is_string($zkey))

{

$targetArray[$key][$zkey] = xml2array($zvalue->asXML());

}

}

}

}

return $targetArray;

}

感谢你能够认真阅读完这篇文章,希望小编分享的"xml与array如何互相转化"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Development

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report