我搜索了我的问题,没有结果,所以我在这里问你所有的朋友。
这就是问题:
当我解析xml时,
xmlpull
总是解析这两个事件eventType(START_DOCUMENT
,END_DOCUMENT
),因此我无法解析标记eventType中的任何有用消息。
这是我的代码:
public Map<String, String> parse(Reader reader) {
Map<String, String> result = new HashMap<>();
try {
//
XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser();
parser.setInput(reader);
//
int eventType = parser.getEventType();
String name = null;
String value = null;
while (eventType != XmlPullParser.END_DOCUMENT) {
if ((eventType == XmlPullParser.START_TAG)) {
name = parser.getName();
} else if (eventType == XmlPullParser.TEXT) {
value = parser.getText();
} else if (eventType == XmlPullParser.END_TAG) {
result.put(name, value);
}
eventType = parser.next();
}
} catch (XmlPullParserException | IOException e) {
e.printStackTrace();
}
return result;
}
我调试了我的代码,这是一个过程:
首先,eventType = START_DOCUMENT
- &gt;然后,eventType = parser.next()
; - &GT; eventType = END_DOCUMENT
,所以我无法读取root的子节点。
那么,如何解决这个问题。首先感谢大家。
答案 0 :(得分:0)
哦不,我发现了问题,这都是因为我在解析xml之前使用bufferedReader.readLine()
来读取它...
如此愚蠢...