phpのDOMDocumentSimpleXMLでファイルに書き出すと、

数値文字参照(ファーストみたないな感じ)になる話。


DOMDocument->save(fileName)SimpleXML->asXML(fileName)で書き出すときに、

拡張子を「.xml」以外にして保存すると(.txtとか.datとか)、何故かならなかったりする。(多分


正直、あまり実害がないので、解決策も特にググってませんが、

何か急場を凌ぐのであればお試しあれ。

(全くもって嘘でした・・・。スマソ。)




まぁどうしても気になる方は、

Googleで日が暮れて夜が明けるまで検索して、

解決した達成感と共に疲れた目も温かいアイマスクで癒してやるがいいさ!


■追記

loadした後に「encoding」を指定しなおしてやれば良さそうです。

どうもloadするとその前に設定した属性値は引き継がれないらしい。

フォーマットが一行になっちゃたりするのも同じ理由っぽ。

$tmp = new DOMDocument('1.0', 'UTF-8');//←後でloadするならここの指定は無意味
$tmp->loadXML($xmlString);
$tmp->encoding = 'UTF-8';
$tmp->formatOutput = true;

$tmp->save($xmlFile);


この記事が役に立ったら

ポチポチっとお願いします。

人気ブログランキングへ