XMLまたはシンプルなXMLオブジェクトへのPHPの配列に変換

クラスArrayToXML

{

/ **

* XML文書に変換するための主な機能。

*多次元の配列を渡し、これはrecrusivelyをループし、XMLドキュメントを構築します。

*

* @ param配列$ dataに

* @ paramの文字列$ rootNodeName - defaultstoデータ - あなたがルートノードになりたいもの。

* @ paramのSimpleXMLElementを$ xmlが - のみ再帰的に使用されるべき
* @ returnの文字列をXML

* /

公共の静的関数ToXmlメソッド($データ、$ rootNodeName = 'データ'、$ XML = null)は

{

そうでない場合は、単純なXMLがグラグラをスローするように/ /互換モードをオフにします。

(ini_get( 'zend.ze1_compatibility_modeディレクティブ')== 1)

{

ini_set( 'zend.ze1_compatibility_modeディレクティブ'、0);

}

するif($ xmlの== NULL)

{

する$ xml = simplexml_load_string( "<?xmlのバージョン= '1 .0 'エンコード=' UTF-8 '> <$ rootNodeName />");

}

/データから/ループは、渡された

しますforeach($データとして$キー=> $値)

{

/ /私たちのXMLには、数字キーはご遠慮ください!

IF(is_numericを($ key))という

{

/ /文字列キーを作る...

$キー= "unknownNode_"。 キー(文字列)$;

}

/ /何かを置き換えるものではありませ英数字

$キー=するpreg_replace( '/ [^ AZ] / I'、 "、$ key)を;

/ / recrusivelyこの関数を呼び出して見つけた別の配列がある場合

IF(するis_array($値))

{

$ノード= $のxml->にaddChild($ key)を;

/ / recrusiveコール。

ArrayToXML :: ToXmlメソッド($ valueは、$ rootNodeName、$ノード);

}

{

/ /単一のノードを追加します。

$ valueは=にhtmlentities($値);

する$ xml->にaddChild($キー、$値);

}

}

/ /文字列として返す。 または、単純なXMLオブジェクトは、必要に応じて!

のxml-> asXML()$を返します。

}

}

次のことができます応答残す 、またはトラックバックをあなた自身のサ ​​イトから。

応答を残しなさい

あなたがしなければなりませんログインしてコメントを投稿する。