[ PHP ] XML ファイルのエンコーディングと改行コード ( DOMDocument )

Pocket

ここでは、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 ファイルと一致します。

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *