ホームページ > バックエンド開発 > PHPチュートリアル > PHP配列をXMLに変換するコード

PHP配列をXMLに変換するコード

WBOY
リリース: 2016-07-25 09:04:17
オリジナル
900 人が閲覧しました
  1. class ArrayToXML
  2. {
  3. /**
  4. * XML ドキュメントに変換するためのメイン関数。
  5. * 多次元配列を渡すと、再帰的にループして XML ドキュメントを構築します。
  6. *
  7. * @param array $data
  8. * @param string $rootNodeName - whatルートノードをデフォルトのデータにします
  9. * @param SimpleXMLElement $xml - 再帰的にのみ使用する必要があります
  10. * @return string XML
  11. */
  12. public static function toXml($data, $rootNodeName = 'data', $xml=null)
  13. {
  14. //turn単純な XML が不安定になるため、互換モードをオフにしないと問題が発生します。 $xml == null)
  15. {
  16. $xml = simplexml_load_string("<$rootNodeName />");
  17. }
  18. //渡されたデータをループ処理します。
  19. foreach($data as $key => $value)
  20. {
  21. // XML に数値キーは含まないでください!
  22. if (is_numeric($key))
  23. {
  24. // 文字列を作成しますkey...
  25. $key = "unknownNode_"。 (string) $key;
  26. }
  27. // 英数字以外のものを置き換えます
  28. $key = preg_replace('/[^a-z]/i', '', $key);
  29. // 別の配列が見つかった場合この関数を再帰的に呼び出します
  30. if (is_array($value))
  31. {
  32. $node = $xml->addChild($key);
  33. // 再帰的に呼び出します。
  34. ArrayToXML::toXml($value, $rootNodeName, $node );
  35. }
  36. else
  37. {
  38. // 単一ノードを追加します
  39. $value = htmlentities($value);
  40. $xml->addChild($key,$value);
  41. }
  42. }
  43. // パスバック文字列として。必要に応じて、単純な XML オブジェクトも使用できます!
  44. return $xml->asXML();
  45. }
  46. }
  47. 复制代
  48. 2、自己書的php数组转xmlの代

function arrtoxml($arr,$dom=0,$item=0){

if (!$dom){
$dom = new DOMDocument("1.0");
    }
  1. if(!$item){
  2. $item = $dom->createElement("root");
  3. $dom->appendChild($item);
  4. }
  5. foreach ($arr as $key=>$val){
  6. $itemx = $dom->createElement(is_string($key)?$key:" item");
  7. $item->appendChild($itemx);
  8. if (!is_array($val)){
  9. $text = $dom->createTextNode($val);
  10. $itemx->appendChild( $text);
  11. }else {
  12. arrtoxml($val,$dom,$itemx);
  13. }
  14. }
  15. return $dom->saveXML();

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