0

drawable-folder に 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

drawable フォルダーに保存することはできません。これはパッケージの一部であり、他の場所、パッケージ/データまたは 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 に答える