クラス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()$を返します。
}
}













































