2013-08-23 3 views
1

SimpleXML 라이브러리를 사용하여 하나의 긴 XML을 구문 분석하고 있습니다. 나는 다음과 같은 POJO 클래스XML 파싱을위한 Android SimpleXML 라이브러리

public class Image { 
private int height; 

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

하지만이 보이지 않는를 만든

이미지 태그 : 여기

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

지금 내가지도 메신저에 관한 원하는 긴 XML의 링크입니다 그것이 정확할 것입니다. 왜냐하면이 태그 사이의 내용을 파싱하는 방법 ...

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

내 두 번째 질문은 Java에서 변수 이름이어야합니다. 왜냐하면 im : image는 Java에서 허용되지 않기 때문입니다.

최대한 빨리 도와주세요. 당신이 당신의 루트에 참조로 im 네임 스페이스가있는 경우

감사

+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); 
} 

그래서 잘 작동 태그 (귀하의 링크에 의해 하나의 XML 태그가) 당신은 그것없이 자식 태그의 이름을 사용할 수 있습니다 (image 우리의 경우).

태그 사이에 내용을 파싱하려면 @Text 주석을 사용하십시오.