2013-04-14 3 views
1

Мое приложение работает с данными и сохраняет его в файле [корень] /data/data/appName/files/list.xmlКак разобрать XML из НЕ файл ресурсов

Я знаю, как для разбора XML, например, это:

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

, но поскольку у меня есть файл не в res dir, мне нужно найти другой способ.

Я знаю, как получить свой файл в виде строки, например:

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". 

Но это работает. Что это значит для меня?

ответ

0

Чтение Xml файла От Path-

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; 
     } 
    } 
Смежные вопросы