2010-10-02 65 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