PHP配列とXML間の変換例を詳しく解説

怪我咯
リリース: 2023-03-12 20:46:01
オリジナル
1275 人が閲覧しました

この記事では、主にPHPを使用して配列とXML間の変換を処理する方法を紹介します。PHPによるXMLから配列への変換方法と、PHPによる配列からXMLへの変換方法を詳しく紹介します。興味のある方は参考にしてください。たとえば、他のクライアントがデータを XML 形式でサーバーに POST し、それを解析するためにサーバー上のプログラムが処理する場合など、配列と XML の間の変換が頻繁に発生します。データ テーブル データを XML 形式でサードパーティ アプリケーションに提供します。

この記事では、PHP を使用して配列と 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 を取得したとします。


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() を呼び出して、次の結果を取得します:


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

以上がPHP配列とXML間の変換例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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