0
XMLPullParser를 사용하여 XML을 읽어야합니다. 그러나 구문 분석하려고 할 때 내 eventType은 0 (즉, START_DOCUMENT)으로 시작하고 즉시 1 (즉, END_DOCUMENT)으로 건너 뛰므로 다른 모든 태그는 건너 뜁니다. 내가 어떤 스위치 케이스를 칠 수없는거야 왜XMLPullParser - 모든 태그 건너 뛰기
public void parseProperties (InputStream in)
{
try
{
XmlPullParserFactory pullParserFactory = XmlPullParserFactory.newInstance();
XmlPullParser pullParser = pullParserFactory.newPullParser();
pullParser.setInput(in, null);
int eventType = pullParser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT)
{
String name = pullParser.getName();
switch (eventType)
{
case XmlPullParser.START_TAG:
break;
case XmlPullParser.END_TAG:
break;
}
eventType = pullParser.next();
}
}
catch (XmlPullParserException ex)
{
}
catch (IOException ex)
{
}
finally
{
}
}
누군가가 말해 주시겠습니까 :
여기 내 예제 코드인가?
public class ParseXML {
private String xmlData;
public ParseXML (String xmlData) {
this.xmlData = xmlData;
}
public boolean process() {
boolean status = true;
boolean inEntry = false;
String textValue = "";
try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
xpp.setInput(new StringReader(this.xmlData));
int eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
String tagName = xpp.getName();
switch (eventType) {
case XmlPullParser.START_TAG:
if (tagName.equalsIgnoreCase("MyTagStart")) {
inEntry = true;
}
break;
case XmlPullParser.TEXT:
textValue = xpp.getText();
break;
case XmlPullParser.END_TAG:
if (inEntry) {
if (tagName.equalsIgnoreCase("MyTagEnd")) {
inEntry = false;
}
else if (tagName.equalsIgnoreCase("SomeTag")) {
someInfo.setInfo(textValue);
}
}
break;
default:
//
}
eventType = xpp.next();
}
} catch (Exception e) {
status = false;
e.printStackTrace();
}
return true;
}
}
당신은 당신의 XML 데이터를 전달하는 인스턴스를 생성 :