2012-05-11 9 views
8

estoy tratando de leer el mismo archivo "xmlfile.xml" de los activos carpeta y también otra copia de la tarjeta SD sdcard/descarga/.leer el archivo XML de la carpeta Android activos

puedo leer desde la tarjeta SD:

  • unfile Volver verdadera
  • Esite Volver verdadera

no no puede leer desde Activos carpeta:

  • unfile Volver Falso
  • Esite Volver Falso

Este código il NO Trabajando

 File source = new File("file:///android_asset/xmlfile.xml"); 
     boolean unfile = source.isFile(); 
     boolean Esiste = source.exists(); 

     try 
     { 
      // todo 
     } catch (Exception e) 
     { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

Este código il Trabajando

 File source = new File("/sdcard/" + "download" + "/" + "xmlfile.xml"); 
     boolean unfile = source.isFile(); 
     boolean Esiste = source.exists(); 

     try 
     { 
      // todo 
     } catch (Exception e) 
     { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

alguien me puede explicar cómo puedo leer el archivo de la carpeta de recursos.

gracias Marco

+0

ver ans dado por mí en http://stackoverflow.com/questions/1372470/parse-local-xml-file-in-android/8413361#8413361 – Khan

Respuesta

11

Para abrir un activo se necesitaría el siguiente fragmento de código:

InputStream is = getAssets().open("xmlfile.xml") 
6

Utilice esta función

// Converting given XML file name to String form 
String mOutputText = getxml("yourxml.xml"); 

/** 
* Function used to fetch an XML file from assets folder 
* @param fileName - XML file name to convert it to String 
* @return - return XML in String form 
*/ 
private String getXml(String fileName) { 
    String xmlString = null; 
    AssetManager am = context.getAssets(); 
    try { 
     InputStream is = am.open(fileName); 
     int length = is.available(); 
     byte[] data = new byte[length]; 
     is.read(data); 
     xmlString = new String(data); 
    } catch (IOException e1) { 
     e1.printStackTrace(); 
    } 
    return xmlString; 
} 
+0

Para el archivo me refiero a la clase [enlace] (http://developer.android.com/reference/java/io/File.html) – marcoqf73

+0

reemplazar InputStream is = am.open (ruta); con InputStream es = new FileInputStream (archivo) creo que puede ayudar – Mufazzal

0
try 
    { 
     AssetManager aManager = Class.getAssets(); 
     InputStream iStream = aManager.open("file.xml"); 
     int length = iStream.available(); 
     byte[] data = new byte[length]; 
     iStream.read(data); 
     assetString = new String(data).toString(); 
    } 
    catch (IOException e) 
    { 
     e.printStackTrace(); 
    } 
0

Esto seguramente le ayudará . Para leer un archivo de la carpeta de activos, necesita un objeto InputStream.

Sintaxis:

InputStream yourobj=getApplicationContext().getAssets().open("Path to xml file"); 

Así que el código en vivo puede ser:

InputStream in_s = getApplicationContext().getAssets().open("www/application/app/client/controllers/data1.xml"); 

Aquí data1.xml es el archivo dentro de la trayectoria.

Cuestiones relacionadas