【问题标题】:Get the data from XML file in drawable-folder using sax parsing?使用 sax 解析从可绘制文件夹中的 XML 文件获取数据?
【发布时间】:2012-05-02 15:36:03
【问题描述】:

我在可绘制文件夹中有一个 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); 显示编译错误。
它与用于 XML 文件的代码相同,它们位于 sdcard 上。

【问题讨论】:

    标签: android android-parser


    【解决方案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);
    

    【讨论】:

    • 我在drawable中的xml文件。如何获取文件路径?
    • 你不能把它存储到drawable文件夹,它是你包的一部分,把它存储在别处,你的包/数据或SD卡,如果对你有帮助,记得打勾
    • 如何将我的文件从资产动态复制到 /data/data/packagesname/folder/
    • 这会有所帮助:stackoverflow.com/questions/4447477/…。如有更多问题,请先提出新问题,我们先自己搜索,谷歌搜索。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-30
    • 2020-03-28
    • 2014-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多