0

我在可绘制文件夹中有一个 XML 文件。我想使用 XML 解析(sax 解析)解析 XML 文件。
我为此使用了以下代码:

private void getDataFromFile(int mntFile) throws SAXException, IOException {
        // TODO Auto-generated method stub
        SAXParserFactory factory = SAXParserFactory.newInstance();
        System.out.println("in method");
        try {
            saxParser = factory.newSAXParser();
        } catch (ParserConfigurationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        DefaultHandler handler = new DefaultHandler() {

        boolean id = false;
        boolean name = false;
        boolean dep = false;


        public void startElement(String uri, String localName,String qName, 
                    Attributes attributes) throws SAXException {
            //System.out.println("in start");
            if (localName.equals("DOCTORID")) {
                id = true;
            }

            if (localName.equals("NAME")) {
                name = true;
            }

            if (localName.equals("DEAPRTMENT")) {
                dep = true;
            } 
        }

        public void endElement(String uri, String localName,
            String qName) throws SAXException { 
        }

        public void characters(char ch[], int start, int length) throws SAXException {

            if (id) {
                id = false;
            }

            if (name) {
                System.out.println("Name : " + new String(ch, start, length));
                mArryLstDoctorNames.add(new String(ch, start, length));
                Log.d("doctor","---"+mArryLstDoctorNames);
                name = false;
            }

            if (dep) {
                dep = false;
            }

        }

         };
           saxParser.parse(R.drawable.myxml, handler);
    }

但是这里saxParser.parse(R.drawable.myxml, handler);显示编译错误。
它与适用于 sdcard 上的 XML 文件的代码相同。

4

1 回答 1

1

您不能将其存储到可绘制文件夹,它是您的包的一部分,将其存储在其他地方,您的包/数据或 SD 卡。
R.drawble.xml 不使用输入源。

首先你需要读取文件,然后将它传递给一个字符串,然后你可以解析它。

这是如何:

FileInputStream fis = openFileInput(yourfilepath);
        InputStreamReader isr = new InputStreamReader(fis);
        char[] inputBuffer = new char[reasonableLenght];
        // Fill the Buffer with data from the file
        isr.read(inputBuffer);
        String xml_data = new String(inputBuffer);
     //then you can do
saxParser.parse(new InputSource(new StringReader(xml_data)), handler);
于 2012-05-02T16:11:08.517 回答