如何解析项目资源android中的xml

amp*_*amp 4 xml parsing android uri

我在res/xml文件夹中有一个XML文件(config.xml),我需要解析这个XML.为此,我使用SAXParser.我这样想:

SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
DefaultHandler handler = new DefaultHandler() {
          //handler definition...
};
Uri configUri = Uri.parse("android.resource://myPackageName/" + R.xml.config);
saxParser.parse(configXML.toString(), handler);
Run Code Online (Sandbox Code Playgroud)

但这不起作用......

解析方法有以下参数:

uri要解析的内容的位置.

dh要使用的SAXDefaultHandler.

我应该使用URI还是Uri?什么是差异?

Com*_*are 6

我在res/xml文件夹中有一个XML文件(config.xml),我需要解析这个XML

打电话getResources().getXml(R.xml.config).您将获得一个XmlResourceParser遵循XmlPullParserAPI的方式.如XmlPullParserJavaDocs所示,最终得到如下代码:

     XmlResourceParser xpp=getResources().getXml(R.xml.config);
     int eventType = xpp.getEventType();

     while (eventType != XmlPullParser.END_DOCUMENT) {
       if (eventType == XmlPullParser.START_DOCUMENT) {
           // do something
       } else if (eventType == XmlPullParser.START_TAG) {
           // do something
       } else if (eventType == XmlPullParser.END_TAG) {
           // do something
       } else if (eventType == XmlPullParser.TEXT) {
           // do something
       }
      eventType = xpp.next();
     }
Run Code Online (Sandbox Code Playgroud)

 

为此,我使用SAXParser

即使你可以让它工作,它将比使用它慢约10倍XmlResourceParser.