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.