0

次のコードを使用して XML ドキュメントを取得します (Java の JDOM による):

SAXBuilder builder = new SAXBuilder();
Document doc= builder.build(new URL("http://www.sasatuan.com/api/api.php"));

そして私は例外を取得します:

org.jdom.input.JDOMParseException: Error in building:
 http://www.sasatuan.com/api/api.php:1: <?xml ... ?> occurs after content.  The
<?xml ... ?> prolog must be at the document start.: http://www.sasatuan.com/api/
api.php:1: <?xml ... ?> occurs after content.  The <?xml ... ?> prolog must be a
t the document start.
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:473)
        ...

この URLhttp://www.sasatuan.com/api/api.phpを IE で入力しても問題ありませんが、firefox または chrome では同じエラーになります。

この xml ヘッダーはドキュメントの先頭にないため、jdom はそれを読み取ることができません。

ビルド前にxmlコンテンツをtrim()すると、この問題を修正できると思います。これを行う方法を知りたいです。

手伝ってくれてありがとう :)

4

1 に答える 1

1

あなたが読む必要がある同様に壊れている他のXMLファイルがありますか?そうでなければ、私は個人的にウェブサイトの所有者と連絡を取ろうとします。そのXMLは単に無効です-そしてそれを修正するのはおそらく簡単な仕事であり、それはあなただけでなくすべての人を助けるでしょう。

それが魅力的でない場合は、コンテンツを文字列としてダウンロードし、メモリでトリミングしてからロードするのがおそらく最も簡単です。入力ストリームの関連するビットをスキップしようとして混乱する可能性がありますが、それは面倒な可能性が高くなります

于 2010-08-23T05:52:19.260 に答える