0

SaxParser を使用して xml ファイル リソースを解析しようとしています。DataHandler を作成しましたが、res/xml/ にある data.xml の場所を XmlReader に示す方法がわかりません。

InputSource オブジェクトの正しいパラメーターは何ですか?

    XmlResourceParser parser = getResources().getXml(R.xml.data);       
    SAXParserFactory spf = SAXParserFactory.newInstance();
    SAXParser sp = spf.newSAXParser();
    XMLReader xr = sp.getXMLReader();

    // Create handler to handle XML Tags ( extends DefaultHandler ) 
    DataSaxHandler myXMLHandler = new DataSaxHandler();
    xr.setContentHandler(myXMLHandler);
    //R.xml.data is my xml file
InputSource is=new InputSource(getResources().getXml(R.xml.data));  //getResources... is wrong say Eclipse

    xr.parse(is);       

どうもありがとう。

4

1 に答える 1

1

問題は、getResources().getXml(int id) の呼び出しが XmlResourceParser を返し、XmlResourceParser を受け取る InputSource コンストラクターがないことです。

SaxParser を使い続けたい場合は、Resources#openRawResource(int id) を介して InputStream を開き、それを InputSource コンストラクターに渡す必要があります。また、openRawResource 関数を使用するには、ファイルを res/raw に移動する必要があります。

于 2011-03-22T15:29:11.730 に答える