So I did make it work but feel free to pitch in and tell me if this is 
efficient or proper way.. I'm getting results fine with this

 *try* {

 DocumentBuilderFactory factory = DocumentBuilderFactory.*newInstance*();

 DocumentBuilder builder = factory.newDocumentBuilder();


  Document doc = builder.parse(feedURL);

 doc.getDocumentElement().normalize();


  // get xml document root element

 Element root = doc.getDocumentElement();


  // get node list of all elements with tag name item

 NodeList items = root.getElementsByTagName("Song");


  ArrayList<String[]> musicSet = *new* ArrayList<String[]>();


  *for* (*int* i = 0; i < items.getLength(); i++) {


  Node itemNode = items.item(i);


  *if* (itemNode.getNodeType() == Node.ELEMENT_NODE) {


   Element itemsAsElement = (Element) itemNode;


   Node _musicid=(Node) itemsAsElement.getElementsByTagName("musicid").item(
0).getChildNodes().item(0);

  Node _asin=(Node) itemsAsElement.getElementsByTagName("ASIN").item(0).
getChildNodes().item(0);

  Node _songname=(Node) itemsAsElement.getElementsByTagName("songname").item
(0).getChildNodes().item(0);

  Node _albumname=(Node) itemsAsElement.getElementsByTagName("albumname").
item(0).getChildNodes().item(0);

  Node _albumurl=(Node) itemsAsElement.getElementsByTagName("albumurl").item
(0).getChildNodes().item(0);

  Node _albuminfo=(Node) itemsAsElement.getElementsByTagName("albuminfo").
item(0).getChildNodes().item(0);

  Node _cover=(Node) itemsAsElement.getElementsByTagName("cover").item(0).
getChildNodes().item(0);

  Node _isfree=(Node) itemsAsElement.getElementsByTagName("isfree").item(0).
getChildNodes().item(0);

  Node _ringurl=(Node) itemsAsElement.getElementsByTagName("ringurl").item(0
).getChildNodes().item(0);

  Node _songurl=(Node) itemsAsElement.getElementsByTagName("songurl").item(0
).getChildNodes().item(0);


   String musicid=_musicid==*null* ? "N/A" : _musicid.getNodeValue();

  String asin=_asin==*null* ? "N/A" : _asin.getNodeValue();

  String songname=_songname==*null* ? "N/A" : _songname.getNodeValue();

  String albumname=_albumname==*null* ? "N/A" : _albumname.getNodeValue();

  String albumurl=_albumurl==*null* ? "N/A" : _albumurl.getNodeValue();

  String albuminfo=_albuminfo==*null* ? "N/A" : _albuminfo.getNodeValue();

  String cover=_cover==*null* ? "N/A" : _cover.getNodeValue();

  String isfree=_isfree==*null* ? "N/A" : _isfree.getNodeValue();

  String ringurl=_ringurl==*null* ? "N/A" : _ringurl.getNodeValue();

  String songurl=_songurl==*null* ? "N/A" : _songurl.getNodeValue();


   itemData = *new* String[] { musicid, asin, songname, albumname, albumurl, 
albuminfo, cover, isfree, ringurl, songurl };

  musicSet.add(itemData);


  }

 }



  *return* musicSet;



On Thursday, March 29, 2012 10:04:44 AM UTC-7, Bozzified wrote:
>
> Hello everyone.
>
> I am trying to get a hang of XML parsing and can't get this to show me the 
> right elements as I'm fairly new to Android/Java dev. Would appreciate 
> some guidance.
>
> I've build a class that gets the custom xml url and needs to parse it and 
> fill ArrayList with values. After trying several versions I can't wrap my 
> head around parsing nodes and extracting element values.
>
> This is what I have
>
>   DocumentBuilderFactory factory = DocumentBuilderFactory.*newInstance*();
> DocumentBuilder builder = factory.newDocumentBuilder();
> Document doc = builder.parse(feedURL);
>
>    // get xml document root element
> Element root = doc.getDocumentElement();
>
>    // get node list of all elements with tag name item
> NodeList items = root.getElementsByTagName("item");
>
>  ArrayList<String[]> photoSet = *new* ArrayList<String[]>();
>
> *for* (*int* i = 0; i < items.getLength(); i++) {
>
>                 Node itemNode = items.item(i);
>
>                 NodeList itemChildNodes = itemNode.getChildNodes();
>
>                 Node itemChildNode = itemChildNodes.item(2);
>
>                 String value = itemChildNode.getNodeValue();
>
>                  Log.*d*("ITEM ELEMENT VALUE", "Node value for item["+i+"] 
> -> "+value);
>
> }
>
> here's what the XML looks like:
>
> <gallery>
> <item> <photoid>509</photoid> <url>
> http://a2.sphotos.ak.fbcdn.net/hphotos-ak-ash4/320622_10150298438271744_326149431743_8468654_1542995730_n.jpg
> </url> <title>Foster The People DC</title> <description></description> 
> <category></category> <dateupdated>2012-01-24 23:31:58</dateupdated> 
> <dateupdated2>Wed Jan 25 07:31:58 GMT-0800 2012</dateupdated2>
>
> </item>
>
> <item> <photoid>508</photoid> <url>
> http://a8.sphotos.ak.fbcdn.net/hphotos-ak-ash4/308152_10150298438346744_326149431743_8468655_312468158_n.jpg
> </url> <title>Foster The People Philly</title> <description></description> 
> <category></category> <dateupdated>2012-01-24 23:31:44</dateupdated> 
> <dateupdated2>Wed Jan 25 07:31:44 GMT-0800 2012</dateupdated2></item>
> </gallery>
>
> So now why I put itemChildNodes.item(2) is basically because I thought 
> that would give me back 3rd subchild element of that node which is in this 
> case <title> tag under <item> node
>
> Would someone be kind enough to educate me on why this is not working and 
> what's the best way to do this. The reason I'm not using SAX is because 
> these XML files will be fairly small so I went with DocumentBuilder and 
> also I wanted to learn both ways.
>
>
> Many thanks good people.
>

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to