PHP配列とXML間の変換

WBOY
リリース: 2016-06-23 13:03:12
オリジナル
728 人が閲覧しました

開発では、特にインターフェイス開発を扱う場合、配列と XML の間の変換が頻繁に発生します。たとえば、他のクライアントがデータを XML 形式でサーバーに POST し、サーバー プログラムが受信と解析を担当します。また、データ テーブル データを XML 形式でサードパーティ アプリケーションに提供する必要もあります。

ソースコードをダウンロード

この記事では、PHP を使用して配列と XML 間の変換を処理する方法を簡単に紹介します。

PHP は配列を XML に変換します

PHP は配列を XML 形式に変換できます。簡単な方法は、配列を走査し、配列のキー/値を XML ノードに変換し、次のように出力を直接エコーすることです。

function arrayToXml($arr){    $xml = "<root>";    foreach ($arr as $key=>$val){    	if(is_array($val)){        	$xml.="<".$key.">".arrayToXml($val)."</".$key.">";        }else{        	$xml.="<".$key.">".$val."</".$key.">";        }    }    $xml.="</root>";    return $xml;}
ログイン後にコピー

Me テストした結果、これが最もシンプルで高速で、ほとんどの配列をサポートしており、中国語の文字化けはありません。

もう 1 つの方法は、DOMDocument を使用して XML 構造を生成することです:

function arrayToXml($arr,$dom=0,$item=0){    if (!$dom){        $dom = new DOMDocument("1.0");    }    if(!$item){        $item = $dom->createElement("root");         $dom->appendChild($item);    }    foreach ($arr as $key=>$val){        $itemx = $dom->createElement(is_string($key)?$key:"item");        $item->appendChild($itemx);        if (!is_array($val)){            $text = $dom->createTextNode($val);            $itemx->appendChild($text);                    }else {            arrayToXml($val,$dom,$itemx);        }    }    return $dom->saveXML();}
ログイン後にコピー

配列を XML に変換することもでき、多次元配列をサポートしており、生成された中国語の XML は文字化けしません。

PHP は XML を配列に変換します

インターフェイス開発を行う場合、一般的な WeChat インターフェイスや Alipay インターフェイスなど、メッセージの送信や通信などのインターフェイスはすべて XML 形式で送信されることがあります。 format の場合、まずこの XML データを取得する方法を見つけてから、それを配列に変換します。

次のような XML を取得したとします。

<root><user>月光光abcd</user><pvs>13002</pvs><ips><baidu_ip>1200</baidu_ip><google_ip>1829</google_ip></ips><date>2016-06-01</date></root>
ログイン後にコピー

simplexml_load_string() 解析を通じて XML データを読み取り、まず json 形式に変換し、次に配列に変換します。

function xmlToArray($xml){        //禁止引用外部xml实体    libxml_disable_entity_loader(true);    $xmlstring = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);    $val = json_decode(json_encode($xmlstring),true);      return $val;}
ログイン後にコピー

xmlToArray() を呼び出して次の結果を取得します:

配列を取得した後、データに対してさまざまな処理を実行できます。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート