2012-02-17 10 views
0

は私のコードです:(ソース:http://www.androidhive.info/2011/11/android-xml-parsing-tutorial/XMLを解析し、doc.getDocumentElement()。getNodeName()を呼び出し、 "h1"の不正な出力を取得しますか?ここ

ここでは私のXMLファイルです:実行に

を取り出し、NoResultsが表示され、私は私のXMLタグではありません、文字列「H1」を取得しますファイル。 XMLファイルが正しく変換されていないか、「members」タグが正常に見つからないかどうかわかりません。

ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>(); 

    XMLParser parse = new XMLParser(); 
    String xml = parse.getXmlFromUrl(url); // getting XML 
    Document doc = parse.getDomElement(xml); // getting DOM element 

    NodeList nodes = doc.getElementsByTagName(KEY_MEMBER); 

    // looping through all item nodes <member> 
    for (int i = 0; i < nodes.getLength(); i++) {       
     HashMap<String, String> map = new HashMap<String, String>();  

     Element e = (Element)nodes.item(i); 
     map.put(KEY_FNAME, parse.getValue(e, KEY_FNAME)); 
     map.put(KEY_MNAME, parse.getValue(e, KEY_MNAME)); 
     map.put(KEY_LNAME, parse.getValue(e, KEY_LNAME)); 
     map.put(KEY_STATE, parse.getValue(e, KEY_STATE)); 
     map.put(KEY_PARTY, parse.getValue(e, KEY_PARTY)); 
     mylist.add(map);    
    } 

    if((nodes.getLength() <= 0)){ 
      Toast.makeText(AndroidXMLParsingActivity.this, "NoResults " + doc.getDocumentElement().getNodeName(), Toast.LENGTH_LONG).show(); 
      finish(); 
    } 

答えて

1

「h1」はhtmlタグなので、あなたのヒットしているURLがxmlではなくhtmlを返すと思います。もちろんこれを判別する簡単な方法は、解析する前にxml文字列を出力することです。

fyi、アンドロイドでのコーディングの制限についてはわかりませんが、解析する前にxmlドキュメントを文字列に変換することは一般的には悪い考えです(xmlを "壊す"から、メモリ使用量)。

+0

興味深いことに、私は非常に同じURLにアクセスするとInternet Explorerでxmlファイルとして開くので、そのxmlファイルはかなり確信しています。 – jks211

+0

私はちょうど私のDropboxのリンクから試してみました。私は強制終了しています(私はそれ以外のところだと思います)。ありがとうございました! – jks211

関連する問題