2012-08-13 5 views
0

다음과 같은 XML 형식을 구문 분석하려고합니다. XmlPullParser가 Xml을 통해 진행되지 않습니다.

XmlToBeParsed

내가 구문 분석하는 데 사용하고 코드

이 하나입니다

parser.nextTag(); 
parser.require(XmlPullParser.START_TAG, null, "feed"); 

while(parser.nextTag() == XmlPullParser.START_TAG) { 
    parser.require(XmlPullParser.START_TAG, null, "item"); 
    System.out.println(parser.getName()); 
    parser.require(XmlPullParser.END_TAG, null, "item"); 
} 

누군가가 내가 잘못 걸 말해 주시겠습니까? 내가 얻는 오류 XmlPullParserException 예기치 않은 형식 위치 : 텍스트 소린

답변

0

parser.getName()parser.getName() 당신에게 현재 태그 (예 : "항목")의 이름을 제공합니다. 현재 태그의 텍스트 내용을 원합니다. 이 텍스트가 없습니다,하지만 난 당신이 아이디어를 얻을 생각하기 때문에 그것은 여전히 ​​atom 태그에 실패합니다 System.out.println(parser.getName());

parser.require(XmlPullParser.TEXT); 
System.out.println(parser.getText()); 

변경합니다. 자, 실제로는 atom 태그에서 실패합니다. 왜냐하면 여러분은 단지 item 태그를 기대하기 때문입니다.하지만 다시는 실제로 질문이 아닙니다.

+0

각 항목 태그의 텍스트를 가져 오는 방법에 대한 while 루프에 대한 전체 코드 블록을 제공해 주시겠습니까? 하나가 이고 다른 하나가 이면 어떻게됩니까? 어떻게 그걸 통해 이동할 수 있습니까? –

1

시작은 item입니다. 끝 item 태그로 이동해야합니다. parser.nextTag();을 호출하여 호출해야합니다. 그렇지 않으면 예외가 throw되는 item의 종료 태그를 사용하여 item 태그 사이의 텍스트를 일치 시키려고 시도합니다.

parser.nextTag(); 
parser.require(XmlPullParser.START_TAG, null, "feed"); 

while(parser.nextTag() == XmlPullParser.START_TAG) { 

    parser.require(XmlPullParser.START_TAG, null, "item"); 
    System.out.println(parser.getName()); 
    parser.nextTag(); 
    parser.require(XmlPullParser.END_TAG, null, "item"); 
} 
관련 문제