SimpleXMLでSJISのXMLファイルを読み込む

あるアプリが出力するXMLファイルを読み込んでWebページに表示する、って言うプログラムを組むことになり、いろいろ調査すると、こんなページを発見した。
http://www.doyouphp.jp/php5/php5_simplexml.shtml
SimpleXMLを使うとXMLの要素をオブジェクトとして扱うことができてとても便利らしい。
例えば、


山田

みたいなファイルがあると、"$xml->name"みたいな感じで要素にアクセスできる。これは確かに便利。
早速使ってみたところ、文字化けの嵐。さらに調べてみるとこんなページが。
SJIS、EUC-JP、JISなどの日本語をSimpleXMLで使う方法 - PHP::PEAR - dozo PukiWiki
どうやらSimpleXMLの内部ではUTF-8で処理されているらしい。今回読み込むのはShift-JISのファイルなので変換が必要だ。

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

いきなりsimplexml_load_file()でXMLファイルを読み込むのではなく、一度file_get_contents()でファイルの内容を文字列に読み込んでから、mb_convert_encoding()でSJISUTF-8変換を行い、その後simplexml_load_string()でオブジェクトに代入する。これでOK。
まだ試してないけど、書き込みも同じ要領なのかな?

でも確かに便利だけど、XMLの書式が変更された場合に対応するのが大変そうな気もする。
その辺、なんかうまいやり方があるのかな?