title: How to parse same name tag in Android XML DOM Parsing?
body: <p>I am not able to parse my XML here. It returns &quot;Item&quot; only.<br />
  My <code>AndroidActivity</code> cannot be shown as it is very big. That's why I have only shown the part which is responsible for parsing.</p>
  <p>My XML Looks like this :</p>
  <pre><code>&lt;MyResource&gt;
  &lt;Item&gt;First&lt;/Item&gt;
  &lt;Item&gt;Second&lt;/Item&gt;
  &lt;/MyResource&gt;
  </code></pre>
  <p>My ActivityClass method:</p>
  <pre><code>public class ShowItems extends Activity{
      ListView lv;
      ListAdapter adapter;
      static final String KEY_RESOURCE = &quot;MyResource&quot;; // parent node 
      static final String KEY_ITEM = &quot;Item&quot;;
      ArrayList&lt;HashMap&lt;String, String&gt;&gt; mylist = new ArrayList&lt;HashMap&lt;String, String&gt;&gt;();
      String[] from={KEY_ITEM };
      int[] to={R.id.mylist_item};
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          // TODO Auto-generated method stub
          super.onCreate(savedInstanceState);
          setContentView(R.layout.showitems);
          
          lv=(ListView) findViewById(R.id.lv_items);
          parseXML();
          adapter = new SimpleAdapter(this, mylist,R.layout.list_item,from , to); 
          lv.setAdapter(adapter);
      }
  
  private void parseXML() {
      // TODO Auto-generated method stub
      XMLParser parser = new XMLParser();
      
      final String URL=&quot;http://10.0.2.2:8080/MySite/xml&quot;;
      String xml = parser.getXmlFromUrl(URL); 
      Document doc = parser.getDomElement(xml); 
      NodeList nl = doc.getElementsByTagName(KEY_RESOURCE); 
      for (int i = 0; i &lt; nl.getLength(); i++) {
  
          HashMap&lt;String, String&gt; map = new HashMap&lt;String, String&gt;();
          Element e = (Element) nl.item(i); 
          map.put(KEY_ITEM, parser.getValue(e, KEY_ITEM)); 
          mylist.add(map); }
  }
  </code></pre>
  <p>My XML Parser Class:</p>
  <pre><code>import java.io.IOException;
  import java.io.StringReader;
  import java.io.UnsupportedEncodingException;
  import javax.xml.parsers.DocumentBuilder;
  import javax.xml.parsers.DocumentBuilderFactory;
  import javax.xml.parsers.ParserConfigurationException;
  import org.apache.http.HttpEntity;
  import org.apache.http.HttpResponse;
  import org.apache.http.client.ClientProtocolException;
  import org.apache.http.client.HttpClient;
  import org.apache.http.client.methods.HttpGet;
  import org.apache.http.impl.client.DefaultHttpClient;
  import org.apache.http.util.EntityUtils;
  import org.w3c.dom.Document;
  import org.w3c.dom.Element;
  import org.w3c.dom.Node;
  import org.w3c.dom.NodeList;
  import org.xml.sax.InputSource;
  import org.xml.sax.SAXException;
  import android.util.Log;
  public class XMLParser {
      public String getXmlFromUrl(String url) { 
          String xml = null; 
          try { 
              HttpClient httpClient = new DefaultHttpClient();
              HttpGet httpGet = new HttpGet(url);
              HttpResponse httpResponse = httpClient.execute(httpGet);
              HttpEntity httpEntity = httpResponse.getEntity(); 
              xml = EntityUtils.toString(httpEntity); 
          } catch (UnsupportedEncodingException e) { 
              e.printStackTrace(); 
          } catch (ClientProtocolException e) { 
              e.printStackTrace(); 
          } catch (IOException e) { 
              e.printStackTrace(); 
          } 
          return xml; 
      }
      
      public Document getDomElement(String xml){ 
          Document doc = null; 
          DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
          try { 
              DocumentBuilder db = dbf.newDocumentBuilder(); 
              InputSource is = new InputSource(); 
                  is.setCharacterStream(new StringReader(xml)); 
                  doc = db.parse(is);  
              } catch (ParserConfigurationException e) { 
                  Log.e(&quot;Error: &quot;, e.getMessage()); 
                  return null; 
              } catch (SAXException e) { 
                  Log.e(&quot;Error: &quot;, e.getMessage()); 
                  return null; 
              } catch (IOException e) { 
                  Log.e(&quot;Error: &quot;, e.getMessage()); 
                  return null; 
              } 
                  // return DOM 
              return doc; 
      }
      
      public String getValue(Element item, String str) {       
          NodeList n = item.getElementsByTagName(str);         
          return this.getElementValue(n.item(0)); 
      } 
      public final String getElementValue( Node elem ) { 
               Node child; 
               if( elem != null){ 
                   if (elem.hasChildNodes()){ 
                       for( child = elem.getFirstChild(); child != null; child = child.getNextSibling() ){ 
                           if( child.getNodeType() == Node.TEXT_NODE  ){ 
                               return child.getNodeValue(); 
                           } 
                       } 
                   } 
               } 
               return &quot;&quot;; 
        } 
  }
  </code></pre>
  <p>I am not able to parse my XML here. What is the problem here?<br />
  It returns &quot;Item&quot; only.<br />
  What do I need to do in my <code>ActivityClass</code> especially in this part of the code?</p>
  <pre><code>String xml = parser.getXmlFromUrl(URL); 
      Document doc = parser.getDomElement(xml); 
      NodeList nl = doc.getElementsByTagName(KEY_RESOURCE); 
      for (int i = 0; i &lt; nl.getLength(); i++) {
          
          
          HashMap&lt;String, String&gt; map = new HashMap&lt;String, String&gt;();
          Element e = (Element) nl.item(i); 
          map.put(KEY_ITEM, parser.getValue(e, KEY_ITEM)); 
          mylist.add(map); }
  </code></pre>