2010-10-02 107 views
0

我有一個xml文件,我用DOM解析它。 `Android DOM解析問題

<media:group> 
<media:category label='hi'scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>hello</media:category> 
<media:content 
      url='http://www.youtube.com/1' 
      expression='full' duration='37' yt:format='5' /> 
    <media:content 
      url='rtsp://v8.cache8.c.youtube.com.2.gp' 
      type='video/3gpp' medium='video' expression='full' duration='37' 
      yt:format='1' /> 
    </media:group> 

(不是原來的鏈接)

這樣它有很多媒體:組標籤...

我的代碼波紋管,並提供:

nodeList = doc.getElementsByTagName("media:group"); 
for (int i = 0; i < nodeList.getLength(); i++) { 

      try { 

       currentNode = nodeList.item(i); 
    Element fstElmnt = (Element) currentNode; 
       NodeList media_list = fstElmnt 
         .getElementsByTagName("media:content"); 
Element mediaElement = (Element) media_list.item(0); 
       media_list = mediaElement.getChildNodes(); 
       String urlString = mediaElement.getAttribute("url"); 

現在我的問題是這我想要所有媒體的所有網址:內容標籤,但只獲得每個媒體的第一個網址:內容標籤。 所以我在哪裏做的錯誤,請幫我...

回答

0

您只能通過要求在列表中的第一媒體元素:

Element mediaElement = (Element) media_list.item(0); 

當然,這會崩潰如果媒體名單空。解決您的問題:只需循環media_list即可。 ;-)

0

你的問題就在這裏(你在media_list得到的第一項):

Element mediaElement = (Element) media_list.item(0); 

在你的樣品ATOM有2個media:content元素。我將遍歷media_list並獲取item(i)並執行String urlString = mediaElement.getAttribute("url");並將urlString添加到列表中。這樣,你就擁有了列表中的所有網址。

希望這會有所幫助。

+0

謝謝:)其工作 – Andy 2010-10-02 11:05:36