http://q.hatena.ne.jp/1240444472

の続きです。
PHPのsimple_xml_loadでXMLを取得してAPIを出力しようとしています。

XMLがエラーを返しているみたいで、w3のバリデーターをかけたら
Warning: Misplaced xml declaration; treating as PI
in unnamed entity at line 1 char 7 of http://~~/api/api_data.php?client_cd=16
のようなエラーがでました・・。

ちなみにPHPのエラーは以下のとおりです。
Warning: simplexml_load_file() [function.simplexml-load-file]: http://~~/api/api_data.php?client_cd=16:1: parser error : XML declaration allowed only at the start of the document in /home/~/~.php on line 28
(line 28 はsimplexml_load_fileのところです)

出力しているXMLは以下の通りで、これが取得できません。
<?xml version="1.0" encoding="utf-8" ?>
- <result>
<cnt>0</cnt>
</result>

原因がわからずなのです。XMLエラーチェックに関してアドバイスをいただけますとうれしいです。

回答の条件
  • 1人10回まで
  • 登録:
  • 終了:2009/04/30 09:40:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:fut573 No.1

回答回数196ベストアンサー獲得回数55

ポイント60pt

xmlファイルの先頭に何か不要なものが付いている時そのエラーが発生します。

半角スペース、utf-8のBOM、改行などが付いていないか確認してみてはいかがでしょうか?

  • id:tezcello
    <?xml version="1.0" encoding="utf-8" ?>
    - <result>
    <cnt>0</cnt>
    </result>

    すごく疑問に思って見ていたのですが、どなたも触れておられないので...
    <result> タグの前に '- ' があるのですけど、こいつがあるから SimpleXML に蹴られるのでは?

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません