2015-12-06 37 views
1

我有一個XML文件,我試圖分析和存儲爲對象,以便我可以堅持它們。XML解析 - XPath表達式試圖訪問循環內第二個XML元素

<key>Playlists</key> 
<array> 
    <dict> 
     <key>Name</key><string>Library</string> 
     <key>Master</key><true/> 
     <key>Playlist ID</key><integer>1806</integer> 
     <key>Playlist Persistent ID</key><string>29E12A03204E0722</string> 
     <key>Visible</key><false/> 
     <key>All Items</key><true/> 
     <key>Playlist Items</key> 
     <array> 
      <dict> 
       <key>Track ID</key><integer>1234</integer> 
      </dict> 
      <dict> 
       <key>Track ID</key><integer>1282</integer> 
      </dict> 
      <dict> 
       <key>Track ID</key><integer>1694</integer> 
      </dict> 
      <dict> 
       <key>Track ID</key><integer>1558</integer> 
      </dict> 
     </array> 
    </dict> 
    <dict> 
     <key>Name</key><string>Music</string> 
     <key>Playlist ID</key><integer>2687</integer> 
     <key>Playlist Persistent ID</key><string>29E12A03204E072C</string> 
     <key>Distinguished Kind</key><integer>4</integer> 
     <key>Music</key><true/> 
     <key>All Items</key><true/> 
     <key>Playlist Items</key> 
     <array> 
      <dict> 
       <key>Track ID</key><integer>1234</integer> 
      </dict> 
      <dict> 
       <key>Track ID</key><integer>1282</integer> 
      </dict> 
      <dict> 
       <key>Track ID</key><integer>1694</integer> 
      </dict> 
      <dict> 
       <key>Track ID</key><integer>1558</integer> 
      </dict> 
     </array> 
    </dict> 

我無法訪問第二個數組。它會在每個播放列表的第一個數組中顯示曲目ID。

它正在爲我嘗試顯示的所有播放列表執行此操作。

任何人都可以幫助我嗎?

+0

具有相同的輸入相關的問題:http://stackoverflow.com/questions/34106517/dom-accessing-inner-elements-of-the-same -java -name/34106629#34106629 –

回答

0

變化

NodeList tList = (NodeList)x.evaluate("/plist/dict/array/dict/array/dict", root, XPathConstants.NODESET); 

NodeList tList = (NodeList)x.evaluate("array/dict", dict, XPathConstants.NODESET); 
+0

這似乎並不奏效。仍然在每個播放列表中顯示相同的數字。 – ariella123