I have an xml file that has many elements and I want to try get the elements in the third element. My problem is that when I'm calling doc.getElementsByTagName("dict") It gets every element that is called dict.
Here is the code:
try { File inputFile = new File("itunes2.xml"); DocumentBuilderFactory dbFactory = DocumentBuilderFactory .newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(inputFile); doc.getDocumentElement().normalize(); System.out.println("Root element :" + doc.getDocumentElement().getNodeName()); NodeList nList = doc.getElementsByTagName("dict"); System.out.println("----------------------------"); for (int temp = 0; temp < nList.getLength(); temp++) { Node nNode = nList.item(temp); System.out.println("\nCurrent Element :" + nNode.getNodeName()); if (nNode.getNodeType() == Node.ELEMENT_NODE) { Element eElement = (Element) nNode; System.out.println("Major Version : " + eElement.getElementsByTagName("integer").item(0) .getTextContent()); System.out.println("Minor Version : " + eElement.getElementsByTagName("integer").item(0) .getTextContent()); System.out.println("Application version : " + eElement.getElementsByTagName("string").item(0) .getTextContent()); System.out.println("Features : " + eElement.getElementsByTagName("integer").item(2) .getTextContent()); System.out.println("Music Folder : " + eElement.getElementsByTagName("string").item(1) .getTextContent()); System.out.println("Library Persistent ID : " + eElement.getElementsByTagName("string").item(2) .getTextContent()); } } } catch (Exception e) { e.printStackTrace(); } } XML:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Major Version</key><integer>1</integer> <key>Minor Version</key><integer>1</integer> <key>Application Version</key><string>10.1</string> <key>Features</key><integer>5</integer> <key>Show Content Ratings</key><true/> <key>Music Folder</key><string>file://localhost//Thomts/Holly/data/My%20Music/iTunes/iTunes%20Music/</string> <key>Library Persistent ID</key><string>29E12A03204E0721</string> <key>Tracks</key> <dict> <key>324</key> <dict> <key>Track ID</key><integer>324</integer> <key>Name</key><string>Talk Dirty To Me</string> <key>Artist</key><string>Poison</string> <key>Composer</key><string>Poison</string> <key>Album</key><string>The Best Of Poison: 20 Years Of Rock</string> <key>Genre</key><string>Metal</string> <key>Kind</key><string>AAC audio file</string> <key>Size</key><integer>3698203</integer> <key>Total Time</key><integer>224866</integer> <key>Disc Number</key><integer>1</integer> <key>Disc Count</key><integer>1</integer> <key>Track Number</key><integer>1</integer> <key>Track Count</key><integer>18</integer> <key>Year</key><integer>1986</integer> <key>Date Modified</key><date>2008-08-07T15:16:57Z</date> <key>Date Added</key><date>2008-08-07T15:17:17Z</date> <key>Bit Rate</key><integer>128</integer> <key>Sample Rate</key><integer>44100</integer> <key>Play Count</key><integer>6</integer> <key>Play Date</key><integer>3378486192</integer> <key>Play Date UTC</key><date>2011-01-22T03:23:12Z</date> <key>Compilation</key><true/> <key>Sort Album</key><string>Best Of Poison: 20 Years Of Rock</string> <key>Persistent ID</key><string>29E12A03204E0873</string> <key>Track Type</key><string>File</string> <key>Location</key><string>file://localhost//Thomts/Holly/data/My%20Music/iTunes/iTunes%20Music/Compilations/The%20Best%20Of%20Poison_%2020%20Years%20Of%20Rock/01%20Talk%20Dirty%20To%20Me.m4a</string> <key>File Folder Count</key><integer>4</integer> <key>Library Folder Count</key><integer>1</integer> </dict> And it outputs this:
Root element :plist Current Element :dict Major Version : 1 Minor Version : 1 Application version : 10.1 Features : 5 Music Folder : file://localhost//Thomts/Holly/data/My%20Music/iTunes/iTunes%20Music/ Library Persistent ID : 29E12A03204E0721 Current Element :dict Major Version : 324 Minor Version : 324 Application version : Talk Dirty To Me Features : 224866 Music Folder : Poison Library Persistent ID : Poison As you can see it gets the correct information for the first element and then the wrong info for the second element. I would like to know how to get all the information within a third dict tag so that I can get all information for a song e.g. Track ID, Name, Artist etc..
No comments:
Post a Comment