SimpleXMLでSJISのXMLファイルを書く

機能のエントリで、SimpleXMLでSJISのXMLファイルを読み込むと言うのを書きましたが、その後XMLファイルへの出力処理を試してみました。

まずは読み込み時と同じようにXMLを解析します。

# 一度文字列に読み込んでからUTF-8に変換後、XML解析
$xmlDoc = File_Get_Contents($xmlfile);
$xmlDoc = mb_convert_encoding($xmlDoc, "UTF-8", "SJIS");
$xml = simplexml_load_string($xmlDoc);

SimpleXMLでは、要素へオブジェクトとしてアクセスできるので便利。値を設定するときもそのまま。

$xml->TITLE = mb_convert_encoding($title, "UTF-8", "SJIS");

ファイルへの出力にはasXML()を使います。

$xml->asXML($xmlfile);

以上。