2011-02-01 5 views
1

HttpURLConnectionからのXMLファイルを解析するパーサーを作成しました。これは正常に動作します。リソースからxmlをロードして解析するときに問題が発生しました。

問題:オリジナルウェブパーサがどのように見えるかだけよアイデアを与えるために...私は、XMLファイルがローカルリソースからではなく、インターネットからロードされるように、これを書き換える必要がありますが、私はこの仕事を得るカント:

InputStream in=null; 

URLConnection connection = url.openConnection(); 
HttpURLConnection httpConnection = (HttpURLConnection)connection; 
int responseCode = httpConnection.getResponseCode(); 

if (responseCode == HttpURLConnection.HTTP_OK) { 


    in = httpConnection.getInputStream(); 
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
    DocumentBuilder db = dbf.newDocumentBuilder(); 

    Document dom = db.parse(in);  
    Element docEle = dom.getDocumentElement(); 
    NodeList nl = docEle.getChildNodes(); 
    for (int i = 0; i < nl.getLength(); i++) { 
    Node node = nl.item(i); 

    //START PARSING...... 

今HERESに私は、リソースフォルダ内のXML/myfile.xmlに置かれたローカルリソースから解析しようとする使用していますコード:

InputStream in=null; 
in = mParentActivity.getResources().openRawResource(R.xml.myfile); 

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder builder = factory.newDocumentBuilder(); 

Document dom = builder.parse(in); // THIS IS WHERE I GET AN SAXParseException 

Element root = dom.getDocumentElement(); 
NodeList nl = root.getChildNodes(); 

for (int i = 0; i < nl.getLength(); i++) { 
    Node node = nl.item(i); 

//START PARSING...... 

ローカルxmlファイルとWebファイルですまったく同じ...もし誰かがそれを見てみると:http://agens.no/Eniro/Android/SEWheel/Category2.plist.xml

そして、stacktrace: 02-01 16:08:45.546:WARN/System.err(19703):org.xml.sax.SAXParseException:名前が期待されています(位置:START_TAG @ 1:309 in java。 [email protected]

Preciateすべてヨールのヘルプ:)ファイルは、私はRES/XMLフォルダだった場合は...答えを見つけることが

+0

これは、XMLが無効であることを示しています。リソースを文字列に読み込んでそれを印刷してみて、それが何を読んでいるのか見てみましたか? –

+1

コードが正常に表示されます.2つのxmlファイルが同じであることを確認してください。あなたはそれらを比較しようとしましたか? <> –

+0

はい、私はそれを文字列に読み込んでいます。それは見た目が美しく見えます。ここに見えるように見えます:http://agens.no/Eniro/Android/SEWheel/ Category2.plist.xml私はこれをloockに見えるタグはありません< >:Sあなたの助けをありがとう – Zelleriation

答えて

1

、入力ストリームは、無効な文字の多くを示しました。私はそれをres/rawフォルダに置くとうまくいきました。

関連する問題