2012-04-18 17 views
0

私は本当にアンドロイドで私のリストにXMLを解析する方法を混乱させる。私はコンポーネント<segment> .ANDとき、私は実行してデバッグを取得するためにgetElementsByTagNameNodeListを使用し、エラーが私のJavaコードは、Androidでここに、より詳細.FORラインNodeList nL = doc.getElementsByTagNameNS(KEY_SEGMENT, "segment_id");で起こっ:androidのノード値を持つxmlを解析する方法

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.listsegment_main); 

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

    String xml = XMLParser.getXmlFromUrl(); 
    Document doc = XMLParser.getDomElement(xml); 


    NodeList nL = doc.getElementsByTagNameNS(KEY_SEGMENT, "segment_id"); 
    for (int i = 0; i < nL.getLength(); i++) { 
     HashMap<String, String> map = new HashMap<String, String>(); 
     Element e = (Element) nL.item(i); 
     map.put(KEY_SEGMENT_ID, XMLParser.getValue(e, KEY_SEGMENT_ID)); 
     map.put(KEY_MAIN_SEGMENT, XMLParser.getValue(e, KEY_MAIN_SEGMENT)); 
     menuItems.add(map); 
    } 

私のxmlファイル:

<map> 
<segment segment_id="1050"> 
    <segment_id>1050</segment_id> 
    <route_id>103</route_id> 
    <canvasser_id>13</canvasser_id> 
    <order>1</order> 
    .... 
</segment> 

私の助言、参考資料、リンク、およびすべての議論が緊急に必要となり、me.bigありがとうございました。

+0

まず下に試みます。ドキュメントの先頭から「segment_id」という要素はありません。 – Chris911

+0

エラーは何ですか? –

+1

おそらくまだ[昨日](http://stackoverflow.com/questions/10168328/android-get-nodelist-attribute-from-xml-file)のように、おそらく 'NullPointerException' ... –

答えて

1

DOMパーサを使用しています。これらのノードは、子要素「segment_idに」を得るから、セグメント要素のリストを取得し、コード

public class XMLParsingDOMExampleActivity extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    try{ 
    URL url = new URL("http://www.androidpeople.com/wp-content/uploads/2010/06/example.xml"); 
      DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
      DocumentBuilder db = dbf.newDocumentBuilder(); 
      Document doc = db.parse(new InputSource(url.openStream())); 
      doc.getDocumentElement().normalize(); 

      NodeList nodeList = doc.getElementsByTagName("item"); 

      Node node = nodeList.item(0); 

      Element fstElmnt = (Element) node; 
      NodeList nameList = fstElmnt.getElementsByTagName("name"); 
      Element nameElement = (Element) nameList.item(0); 
      nameList = nameElement.getChildNodes(); 
      Log.i("Name", ((Node) nameList.item(0)).getNodeValue()); 

      NodeList websiteList = fstElmnt.getElementsByTagName("website"); 
      Element websiteElement = (Element) websiteList.item(0); 
      websiteList = websiteElement.getChildNodes(); 
      Log.i("Website",((Node) websiteList.item(0)).getNodeValue()); 

      Log.i("Website Category", websiteElement.getAttribute("category")); 

    } 
    catch(Exception e) { 

     e.printStackTrace(); 

    } 
} 

}

You can find SAXParser as well on this blog

+0

thanks @ ValayPatel.It works私のために :-) –

関連する問題