2012-03-15 10 views
3

res/xmlフォルダにXMLファイル(config.xml)があり、このXMLを解析する必要があります。 これを行うにはSAXParserを使用します。プロジェクトリソースからxmlを解析する方法android

は、コンテンツの場所をURIに解析する:

parseメソッドは、次のパラメータを持っている...

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); 

しかし、これは動作しますしない:私はこのようにしようとしています。

dh使用するSAXDefaultHandler。

URIまたはUriを使用する必要がありますか?違いは何ですか?

+0

リソースを解析するための 'SAXParser'ではなく' XmlResourceParser'を使用してください –

答えて

5

私はRES/XMLフォルダ内のXMLファイル(config.xml)を持っていると私は、このXML

コールgetResources().getXml(R.xml.config)を解析する必要があります。 XmlPullParser APIに続くXmlResourceParserが渡されます。私はあなたが、仕事にそれをそれを得ることができたとしてもSAXParserの

を使用してこれを行うには

 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(); 
    } 

 

XmlPullParser JavaDocsに示すように、あなたはこのようなコードを巻きますXmlResourceParserを使用する場合より10倍遅くなります。

+0

ありがとうございます!この方法で動作します... – amp

関連する問題