2013-08-23 48 views
1

我使用SimpleXML库解析一个长xml。这里是用于XML解析的Android SimpleXML库

http://ax.itunes.apple.com/WebObjects/MZStoreServices.woa/ws/RSS/topsongs/limit=10/xml

现在我想关于指导IM 龙XML的链接:图像标签

我已经做了以下POJO类

public class Image { 
private int height; 

public Image(@Attribute(name = "height") int height) 
{ 
    this.height=height; 
} 
@Attribute(name = "height") 
public int getObjectHeight() { 
    return height; 
} 
} 

但这并不看我正确的,因为它只会处理高度...如何解析这些标签之间的内容

<im:image height="170"> </im:image> 

和我的第二个问题是什么应该是Java中的变量名...因为im:图像不允许在java中。

请尽快帮我。

感谢

+0

你需要从xml链接中获得什么细节...... – Hariharan

回答

0

首先你需要添加命名空间的元素

@Namespace(reference = "http://itunes.apple.com/rss", prefix = "im") 
public class Image { 
    @Element(name = "image ") 
    private String image_url; 

    @Attribute 
    private int height; 
} 
+0

OP需要获取元素的值。 – maress

0

下一个代码工作正常

@Root(name = "feed") 
static class Feed { 
    @Element 
    Image image; 

} 

@Root(name = "image") 
static class Image { 

    @Attribute(name = "height") 
    int height; 

    @Text 
    String content; 

} 

@Test 
public void testPrefixedTag() throws Exception { 
    String xml = 
      "<feed xmlns:im=\"http://itunes.apple.com/rss\" xmlns=\"http://www.w3.org/2005/Atom\">" + 
      "<im:image height=\"170\">Content</im:image>" + 
      "</feed>"; 
    Serializer serializer = new Persister(); 
    Feed feed = serializer.read(Feed.class, xml); 
} 

所以,如果你有你的根参考im命名空间标签(xml通过你的链接有一个),你可以使用没有它的子标签的名字(在我们的例子中为image)。

要解析标签之间的内容,请使用@Text批注。