ここでは、XML ファイルエンコーディングと改行コードについて、DOMDocument クラスがどのように扱うかを検証した結果を掲載しています。また、タグには日本語を用いています(意味はとくにありません)。
動作環境は次の通りです。
PHP:PHP5.3.5(Windows)
PHP スクリプトエンコード:UFT-8
XML エンコード:EUC-JP / Shift-JIS
スポンサーリンク
XML ファイル
動作確認で使用した XML ファイルは次の通りです。
<?xml version="1.0" encoding="EUC-JP"?> <!-- または Shift-JIS --> <データ> <日本語タグ名>日本語データ1</日本語タグ名> <日本語タグ名>日本語データ2</日本語タグ名> </データ> <!-- 改行コード:EUC-JP : LF Shift-JIS : CR+LF -->
XML ファイルの入出力
DomDocument クラスを使用して XML ファイルを読み込んで別ファイルに出力するサンプルコードです。詳細はコメントを参照ください。
$xml_path = "/path/to/data.xml"; // xml ファイルの読み込み $dom = new DomDocument(); $dom->load($xml_path); // 日本語タグの取得 $nlist = $dom->getElementsByTagName('日本語タグ名'); // 取得したタグを出力 for($i=0; $i<$nlist->length; $i++) { var_dump($nlist->item($i)->nodeName); var_dump($nlist->item($i)->nodeValue); } // 読み込んだ xml を別ファイルに出力 $save_path = "/path/to/save.xml"; $dom->save($save_path);
サンプルコードを実行して出力した XML ファイルは、読み込んだ XML ファイルと同じであり、文字コードおよび改行コードも、元の XML ファイルと一致します。