- 締切済み
PHP5でsimple_xml_load_fileするとエラーになっちゃいます。
simple_xml_load_fileを使ってXMLを読み込んでいるのですが、読み込みの時点でエラーが出てしまいます。 Warning: simplexml_load_file() [function.simplexml-load-file]: input conversion failed due to input error, bytes 0xAD 0xB5 0x3C 0x2F ↑こんな感じです。 原因を探ったところ、XMLファイルのデータ中にローマ数字(I、II、・・)があるとこのようになることが分かりました。 ちなみにsimplexml_load_stringを使用してもほぼ同様のエラーが発生しました。 ローマ数字入りのXMLファイルを読み込むことはできないのでしょうか?ご存じでしたら知恵を拝借したいのですが・・・。 ※SAX、DOMでも読み込めず(T_T)
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- fdsjaklfjas
- ベストアンサー率81% (96/118)
いくつか方法があります。 ・XML文書のEncoding指定を、EUC-JPからeucJP-winにする。 <?xml version="1.0" encoding="EUC-JP"?> →<?xml version="1.0" encoding="eucJP-win"?> (ローマ数字は13区 NEC特殊文字で、EUC-JPには含まれない文字ですが、eucJP-winには含まれています)。 ・XML文書内のI、IIなどの文字を実体参照化する。 <name>ほげI</name> →<name>ほげⅠ</name> <name>ふぉII</name> →<name>ふぉⅡ</name> #上記は、<>&を全角で書いてますが、適宜半角にしてください。
お礼
返事遅くなりました。すいません。 結論としてファイル内容を読み込んで、UTF-8からUTF-8へエンコードをかければそのまま取得することができました。 ありがとうございました。