0
XMLPullParser
으로 XML 파일을 구문 분석하려고합니다. 내 코드는 다음과 같습니다 :구문 분석 XML 파일에서 null을 반환합니다.
try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
xpp.setInput(new StringReader(iData));
int eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
if (eventType == XmlPullParser.START_TAG) {
if (xpp.getName() == "service") {
sDetails[0] = xpp.getAttributeValue(1);
}
if (xpp.getName() == "username") {
sDetails[1] = xpp.nextText();
}
if (xpp.getName() == "quota") {
sDetails[2] = xpp.nextText();
}
if (xpp.getName() == "plan") {
sDetails[5] = xpp.nextText();
}
if (xpp.getName() == "carrier") {
sDetails[4] = xpp.nextText();
}
if (xpp.getName() == "speed") {
sDetails[3] = xpp.nextText();
}
if (xpp.getName() == "usage-rating") {
sDetails[6] = xpp.nextText();
}
if (xpp.getName() == "rollover") {
sDetails[7] = xpp.nextText();
}
if (xpp.getName() == "excess-charged") {
sDetails[10] = xpp.nextText();
}
if (xpp.getName() == "excess-shaped") {
sDetails[11] = xpp.nextText();
}
if (xpp.getName() == "excess-restricted") {
sDetails[12] = xpp.nextText();
}
if (xpp.getName() == "plan-interval") {
sDetails[8] = xpp.nextText();
}
if (xpp.getName() == "plan-cost") {
sDetails[9] = xpp.nextText();
}
}
eventType = xpp.next();
}
String t = "";
for (int i = 0; i < sDetails.length; i++) {
t = t + sDetails[i] + ",";
}
return t;
} catch (Exception e) {
e.printStackTrace();
}
그러나 반환되는 값을 인쇄 할 때. 내가 얻는 것은 :
null,null,null,null,...,null,null, (13 Times)
내가 뭔가를 잃어버린거야? 내가 읽고있는 XML 파일이 반환됩니다 (인쇄 할 수 있기 때문에). iData
은 XML 파일이 포함 된 문자열입니다. 내가 사용하고있는 방법은 내 IF
문이 WHILE
안에있는 것을 제외하면 같은 위치의 다른 XML 파일에서 작동합니다. 왜 null
에 대한 제안 사항이 반환됩니다.