配列と XML の間で変換するための PHP 処理サンプル コード

怪我咯
リリース: 2017-07-11 16:37:44
オリジナル
1760 人が閲覧しました

開発では、特にインターフェイス開発を扱う場合、配列と 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; 
}
ログイン後にコピー

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

もう 1 つの方法は、DOM
Document を使用して 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 形式であるため、まずこの 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, &#39;SimpleXMLElement&#39;, LIBXML_NOCDATA); 

$val = json_decode(json_encode($xmlstring),true); 

return $val; 

}
ログイン後にコピー

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



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

以上が配列と XML の間で変換するための PHP 処理サンプル コードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!