android - Parse XML data through DOM parser. -


i struggling many hours parse xml data.

xml data:

 <?xml version="1.0" encoding="utf-8"?>  <data>  <status>200</status> <description>ok</description>  <topcities>        <city>ahmedabad</city>        <city>bangalore</city>        <city>chandigarh</city>        <city>chennai</city>        <city>cochin</city>        <city>faridabad</city>        <city>ghaziabad</city>        <city>gurgaon</city>        <city>hyderabad</city>        <city>kolkata</city>        <city>mumbai</city>        <city>navi mumbai</city>        <city>new delhi</city>        <city>noida</city>        <city>pune</city>        <city>thane</city> </topcities> <othercities>        <city>agra</city>        <city>ahmednagar</city>        <city>ajmer</city>        <city>akola</city>        <city>allahabad</city>        <city>ambala</city>        <city>amravati</city>        <city>amritsar</city>        <city>anand</city>        <city>aurangabad</city>        <city>belgaum</city>        <city>bharuch</city>        <city>bhavnagar</city>        <city>bhilai</city>        <city>bhopal</city>        <city>bhubaneswar</city>        <city>bhuj</city>        <city>bilaspur</city>        <city>coimbatore</city>        <city>dehradun</city>        <city>dhanbad</city>        <city>dharwad</city>        <city>durgapur</city>        <city>durg</city>        <city>erode</city>        <city>firozabad</city>        <city>gandhidham</city>        <city>gandhinagar</city>        <city>goa</city>        <city>guwahati</city>        <city>gwalior</city>        <city>haldwani</city>        <city>himmatnagar</city>        <city>howrah</city>        <city>hubli</city>        <city>indore</city>        <city>jabalpur</city>        <city>jaipur</city>        <city>jalandhar</city>        <city>jamnagar</city>        <city>jamshedpur</city>        <city>jodhpur</city>        <city>kanpur</city>        <city>kolhapur</city>        <city>kollam</city>        <city>kota</city>        <city>kottayam</city>        <city>kozhikode</city>        <city>kurukshetra</city>        <city>lucknow</city>        <city>ludhiana</city>        <city>madurai</city>        <city>mangalore</city>        <city>mathura</city>        <city>meerut</city>        <city>mehsana</city>        <city>mohali</city>        <city>mysore</city>        <city>nagpur</city>        <city>nanded</city>        <city>nashik</city>        <city>nellore</city>        <city>panchkula</city>        <city>panipat</city>        <city>patiala</city>        <city>patna</city>        <city>pondicherry</city>        <city>raipur</city>        <city>rajkot</city>        <city>ranchi</city>        <city>ratnagiri</city>        <city>rohtak</city>        <city>saharanpur</city>        <city>salem</city>        <city>sangli</city>        <city>satara</city>        <city>shimla</city>        <city>shillong</city>        <city>siliguri</city>        <city>sivakasi</city>        <city>solapur</city>        <city>srinagar</city>        <city>surat</city>        <city>thanjavur</city>        <city>thrissur</city>        <city>tirunelveli</city>        <city>tirupati</city>        <city>tirupur</city>        <city>trichy</city>        <city>trivandrum</city>        <city>udaipur</city>        <city>ujjain</city>        <city>vadodara</city>        <city>vapi</city>        <city>valsad</city>        <city>varanasi</city>        <city>vellore</city>        <city>vijayawada</city>        <city>visakhapatnam</city>        <city>visnagar</city>        <city>warangal</city>        <city>yamunanagar</city>  </othercities>  </data> 

my parsing code:

   xmlparser parser = new xmlparser();         string xml = parser.getxmlfromurl(url);        // getting xml         document doc = parser.getdomelement(xml); // getting dom element          nodelist nl = doc.getelementsbytagname(key_top_city);          // looping through item nodes <item>         (int = 0; < nl.getlength(); i++) {             // creating new hashmap             //hashmap<string, string> map = new hashmap<string, string>();              element e = (element) nl.item(i);             nodelist children = e.getchildnodes();                (int j = 0; j < children.getlength(); j++) {                   node child = children.item(j);                     hashmap<string, string> map = new hashmap<string, string>();                     if (child.getnodename().equalsignorecase(key_city)) {                         log.v("data", parser.getvalue(e, key_city));                         map.put(key_city, parser.getvalue(e, key_city));                      }                      menuitems.add(map);                 } 

but unfortunately getting first city(ahmedabad) repeatedly. want cities show..

can please ..

thanks ..

here's implementation using org.w3c.dom package. code loads local file, modify use url.

try     {         document document =  documentbuilderfactory.newinstance().newdocumentbuilder().parse(new file("test.xml"));         document.getdocumentelement().normalize();          system.out.println("root element: " + document.getdocumentelement().getnodename());          nodelist nodelist = document.getelementsbytagname("topcities");          system.out.println("-------------------------------");          (int i=0; i<nodelist.getlength();i++)         {             node node = nodelist.item(i);             system.out.println("current element: " + node.getnodename());              if (node.getnodetype() == node.element_node)             {                 // put code add city map in place                 // of print statement.                 system.out.println(node.gettextcontent());             }         }     }     catch (saxexception e)     {         e.printstacktrace();     }     catch (ioexception e)     {         e.printstacktrace();     }     catch (parserconfigurationexception e)     {         e.printstacktrace();     } 

by way, second loop redundant (unless city element can have children.) need loop through list retrieved via getelementsbytagname.


Comments

Popular posts from this blog

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

php - render data via PDO::FETCH_FUNC vs loop -

The canvas has been tainted by cross-origin data in chrome only -