0

我正在尝试使用 SaxParser 解析我的 xml 文件资源。我已经创建了我的 DataHandler,但我不知道如何向 XmlReader 指示 res/xml/ 中 data.xml 的位置。

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 构造函数。您还需要将文件移动到 res/raw 以使用 openRawResource 函数。

于 2011-03-22T15:29:11.730 回答