我在res/xml/data.xml
位置有一个xml文件
我需要解析那个xml文件
XmlResourceParser xrp=context.getResources().getXml(R.xml.data);
我用这段代码来获取该文件。它返回XmlResourceParser
还尝试使用xmlpullparser
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
我在这两个解析器之间没有清楚的想法。我的问题是如何使用xmlpullparser
解析资源文件夹中的xml文件?
答案 0 :(得分:2)
XmlResourceParser
是一个interface
,其范围为XmlPullParser
。
getXml
将返回XmlResourceParser
个对象。您可以使用XMLPullParser
以下是从资源xml
解析的示例代码 try {
XmlResourceParser xmlResourceParser = getResources().getXml(R.xml.data);
int eventType = xmlResourceParser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
if (eventType == XmlPullParser.START_DOCUMENT) {
System.out.println("Start document");
} else if (eventType == XmlPullParser.START_TAG) {
System.out.println("Start tag " + xmlResourceParser.getName());
} else if (eventType == XmlPullParser.END_TAG) {
System.out.println("End tag " + xmlResourceParser.getName());
} else if (eventType == XmlPullParser.TEXT) {
System.out.println("Text " + xmlResourceParser.getText());
}
eventType = xmlResourceParser.next();
}
System.out.println("End document");
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}