ホームページ  >  記事  >  バックエンド開発  >  ディスカッション: array2xml と xml2array、および xml と array_PHP の相互変換チュートリアル

ディスカッション: array2xml と xml2array、および xml と array_PHP の相互変換チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:04:15875ブラウズ

PHP がバックエンド サーバーとして動作している場合、フロントエンドから XML ファイルを解析し、XML 形式でデータを返す必要があることがよくあります。この場合、XML と連想配列の間で変換が行われます。 PHP は非常に頻繁に使用されます。たとえば、flex やその他のクライアント プログラムは、多くの場合、このメソッドを使用してサーバーと対話します。以下にまとめた 2 つの方法は、XML と配列の変換の作業負荷を大幅に簡素化します。

コードをコピーします コードは次のとおりです:

/**
     *
     * 将简单数组转化为简单的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'=>'http://www.jb51.net'),
                                array('conferenceId'=>454,'conferenceTitle'=>'quanshi meetting','smeAccount'=>'http://www.jb51.net'),
                                array('conferenceId'=>6767,'conferenceTitle'=>'quanshi meetting','smeAccount'=>'http://www.jb51.net'),
                                array('conferenceId'=>232323,'conferenceTitle'=>'quanshi uuu','smeAccount'=>'http://www.jb51.net'),
                                array('conferenceId'=>8989,'conferenceTitle'=>'quanshi meetting','smeAccount'=>'http://www.jb51.net'),
                                array('conferenceId'=>1234343212,'conferenceTitle'=>'quanshi meetting','smeAccount'=>'http://www.jb51.net')
                                )
                            )
        );
        转化为:
        aaron
        192.168.0.12
       
           
                1212
                quanshi 444
                http://www.jb51.net
           

           
                454
                quanshi meetting
                http://www.jb51.net
           

           
                6767
quanshi ミーティング
http://www.jb51.net
<カンファレンス>
232323
quanshi uuu
http://www.jb51.net

<カンファレンス>
8989
quanshi ミーティング
http://www.jb51.net
<カンファレンス>
1234343212
quanshi ミーティング
http://www.jb51.net


*/
function array2xml($data,$tag = '')
{
$xml = '';

foreach($data as $key => $value)
{
if(is_numeric($key))
{
if(is_array($value))
{
$xml .= "<$tag>";
$xml .= array2xml($value) ;
$xml .="";
}
else
{
$xml .= "<$tag>$value";
}
}
else
{
if(is_array($value))
{
$keys = array_keys($value);
if(is_numeric($keys[0]))
{
$xml .=array2xml($value,$ key);
}
else
{
$xml .= "<$key>";
$xml .=array2xml($value);
$xml .= "";
}

}}else
{
$ xml。= "&lt; $ key&gt; $ value&lt;/$ key&gt;";
}
}}
}
}
}}}


xml2array代金

代金如下:

/**
*
* 単純な XML を連想配列に変換します
* @param string $xmlString xml string
* @example
*
lt ;/rtxAccount>
192.168.1.56
120
1
< rtxAccount>招待者 1 の RTX アカウント
招待者 1 の電話番号


招待者 2 の RTX アカウント< /rtxアカウント>
<; tel>Invitee 2 電話番号



変換後の連想配列:
Array
(
[ ConferenceTitle] => IT Exchange Conference
[ startTime] => 2011-12-19 12:00:00
[ipAddr] => 120

[招待者] =&gt;*/
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());
}️

}







http://www.bkjia.com/PHPjc/327794.html
www.bkjia.com
tru​​e

http://www.bkjia.com/PHPjc/327794.html

PHP がバックエンド サーバーとして動作している場合、フロントエンドから XML ファイルを解析し、XML 形式でデータを返す必要があることがよくあります。この場合、XML は PHP の配列に関連付けられます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。