Saltar al contenido

Cómo leer un archivo XML en Android

Recuerda que en la informática cualquier problema casi siempre tiene varias resoluciones, de igual modo nosotros te enseñaremos lo mejor y más eficiente.

Solución:

Pruebe esto primero:

import java.io.IOException;
import java.io.InputStream;

import android.app.Activity;
import android.content.res.AssetManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class Main extends Activity 

Button btn;
TextView tvXml;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button btn = (Button) findViewById(R.id.button1);

    btn.setOnClickListener(new OnClickListener() 

        @Override
        public void onClick(View v) 
            // Load XML for parsing.
            AssetManager assetManager = getAssets();
            InputStream inputStream = null;
            try 
                inputStream = assetManager.open("textxml.xml");
             catch (IOException e) 
                Log.e("tag", e.getMessage());
            

            String s = readTextFile(inputStream);
            TextView tv = (TextView)findViewById(R.id.textView1);
            tv.setText(s);
        
    );



private String readTextFile(InputStream inputStream) 
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

    byte buf[] = new byte[1024];
    int len;
    try 
        while ((len = inputStream.read(buf)) != -1) 
            outputStream.write(buf, 0, len);
        
        outputStream.close();
        inputStream.close();
     catch (IOException e) 

    
    return outputStream.toString();


Hay varias formas de leer un XML en Android. Mi primera opción es DocumentBuilder, ya que no creo una restricción de versión de API (está disponible desde API Nivel 1).

Un ejemplo de uno de mis proyectos:

public Document parseXML(InputSource source) 
    try 
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        dbf.setNamespaceAware(false);
        dbf.setValidating(false);
        DocumentBuilder db = dbf.newDocumentBuilder();
        return db.parse(source);
     catch (Exception e) 
        e.printStackTrace();
        return null;
    
 

¿Cómo lee el archivo y accede a los valores del documento después de esto? Bueno, es bastante básico, solo busque en Google.

Para empezar, utilice el analizador DOM. Dado que es un código mucho menor y fácil de seguir. El analizador SAX es demasiado código para empezar. La gente argumentará que SAX es más rápido, sí lo es, pero DOM es más fácil, con menos código y con menos errores.

Si debe pasar a SAX, primero mida sus tiempos de respuesta cuando use DOM, y solo si el análisis le está causando más dolor, luego pase a SAX. O bien, DOM hace un trabajo maravilloso.

Eres capaz de confirmar nuestro estudio ejecutando un comentario y puntuándolo te lo agradecemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *