1
XML 파일을 구문 분석하려고하지만 문서와 관련하여 문제가 있습니다. 내가 대신 START_TAG null이 무엇입니까,XmlPullParser가 START_TAG 대신 null이 됨
parser.require(XmlPullParser.START_TAG, ns, "CarStatus");
을하지만 :
나는이 라인에 문제가 발생하고있다.
XML HTTP POST 응답 : 여기
06-20 15:15:40.804: I/RESPONSE(2270): <?xml version="1.0" encoding="utf-8"?>
06-20 15:15:40.804: I/RESPONSE(2270): <CarObject>
06-20 15:15:40.804: I/RESPONSE(2270): <ResultCode>0</ResultCode>
06-20 15:15:40.804: I/RESPONSE(2270): <ResultMessage>success</ResultMessage>
06-20 15:15:40.804: I/RESPONSE(2270): <Cardata xsi:type="ArrayOfCarStatus">
06-20 15:15:40.804: I/RESPONSE(2270): <CarStatus>
06-20 15:15:40.804: I/RESPONSE(2270): <CarID>241</CarID>
06-20 15:15:40.804: I/RESPONSE(2270): <CarName>ASC</CarName>
06-20 15:15:40.804: I/RESPONSE(2270): </CarStatus>
06-20 15:15:40.804: I/RESPONSE(2270): </CarData>
06-20 15:15:40.804: I/RESPONSE(2270): </CarObject>
내가 문제가 발생하고있는 코드입니다.
private CarStatus readCarStatus(XmlPullParser parser)
throws XmlPullParserException, IOException {
parser.require(XmlPullParser.START_TAG, ns, "CarStatus");
String carId = null;
String carName = null;
while (parser.next() != XmlPullParser.END_TAG) {
if (parser.getEventType() != XmlPullParser.START_TAG) {
continue;
}
String name = parser.getName();
if (name.equals("CarID")) {
carId = readCarId(parser);
} else if (name.equals("CarName")) {
carName = readCarName(parser);
} else {
skip(parser);
}
}
return new CarStatus(carId, carName);
}
06-20 16:56:15.773: W/System.err(4017): org.xmlpull.v1.XmlPullParserException: expected: START_TAG {null}CarStatus (position:START_TAG <ResultObject >@2:146 in [email protected])
06-20 16:56:15.773: W/System.err(4017): at org.kxml2.io.KXmlParser.require(KXmlParser.java:2046)
06-20 16:56:15.773: W/System.err(4017): at com.bentseytlin.maps.MainActivity.readCarStatus(MainActivity.java:174)
06-20 16:56:15.773: W/System.err(4017): at com.bentseytlin.maps.MainActivity.parse(MainActivity.java:143)
06-20 16:56:15.773: W/System.err(4017): at com.bentseytlin.maps.MainActivity.onCreate(MainActivity.java:88)
06-20 16:56:15.773: W/System.err(4017): at android.app.Activity.performCreate(Activity.java:5104)
06-20 16:56:15.780: W/System.err(4017): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
06-20 16:56:15.780: W/System.err(4017): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
06-20 16:56:15.780: W/System.err(4017): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
06-20 16:56:15.780: W/System.err(4017): at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3692)
06-20 16:56:15.780: W/System.err(4017): at android.app.ActivityThread.access$700(ActivityThread.java:141)
06-20 16:56:15.780: W/System.err(4017): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1240)
06-20 16:56:15.780: W/System.err(4017): at android.os.Handler.dispatchMessage(Handler.java:99)
06-20 16:56:15.780: W/System.err(4017): at android.os.Looper.loop(Looper.java:137)
06-20 16:56:15.780: W/System.err(4017): at android.app.ActivityThread.main(ActivityThread.java:5041)
06-20 16:56:15.780: W/System.err(4017): at java.lang.reflect.Method.invokeNative(Native Method)
06-20 16:56:15.780: W/System.err(4017): at java.lang.reflect.Method.invoke(Method.java:511)
06-20 16:56:15.780: W/System.err(4017): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
06-20 16:56:15.780: W/System.err(4017): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
06-20 16:56:15.780: W/System.err(4017): at dalvik.system.NativeStart.main(Native Method)
도움 주셔서 감사합니다!
''뒤에 '자동차'란 무엇입니까? XML 입력이 잘못되었다고 생각합니다. –
Qben
미안하지만, 어떻게 거기에 있었는지 모르겠습니다. XML 파일은 확실히 문제가 아닙니다! – benzabill
어쩌면 require 호출을 건너 뛸 수 있으며 [this] (http://stackoverflow.com/questions/15187607/android-xmlpullparser-how-to-parse-this-xml-sample-file) 스레드와 비슷합니까? – Qben