簡體   English   中英

如何從NOT資源文件解析xml

[英]How to parse xml from NOT resource file

我的應用程序處理數據並將其保存在文件[root] /data/data/appName/files/list.xml中

我知道如何解析XML,如下所示:

XmlResourceParser parser = getResources().getXml(R.xml.list);

但是因為我有一個不在res目錄中的文件,所以我需要找到另一種方法。

我知道如何以字符串形式獲取文件,如下所示:

FileInputStream fIn = openFileInput("samplefile.txt");
InputStreamReader isr = new InputStreamReader(fIn);
char[] inputBuffer = new char[TESTSTRING.length()];
isr.read(inputBuffer);
String readString = new String(inputBuffer);

能夠指定文件名很重要。

另外,當我使用以下命令保存文件時:

FileOutputStream fOut = openFileOutput("list1.xml", MODE_WORLD_READABLE);

編譯器顯示: "MODE_WORLD_READABLE"因為

"This constant was deprecated in API level 17". 

但這有效。 對我來說意味着什么?

從路徑讀取XML文件

public boolean ReadXmlFile(String filePath)
    {
        try {
            String Data="";
            File fIN = new File(filePath);

            if (fIN.exists()) 
            {
                StringBuffer fileData = new StringBuffer(1000);
                BufferedReader reader = new BufferedReader(
                        new FileReader(filePath));
                char[] buf = new char[1024];
                int numRead=0;

                while((numRead=reader.read(buf)) != -1){            
                    String readData = String.valueOf(buf, 0, numRead);
                    fileData.append(readData);              
                    buf = new char[1024];
                }

                reader.close();   
                Data= fileData.toString();

            }
            else
            {

                return false;
            }

            docData = null;
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

            try 
            {           
                DocumentBuilder db = dbf.newDocumentBuilder();          
                InputSource is = new InputSource();
                is.setCharacterStream(new StringReader(Data));
                docData = db.parse(is);         
            } catch (ParserConfigurationException e) {          
                return false;
            } catch (SAXException e) {          
                return false;
            } catch (IOException e) {           
                return false;
            }
            return true;
        } catch (Exception e) {

            return false;
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM