Cómo analizar el archivo XML en Android?

En este artículo, vamos a aprender sobre la analizador XML y cómo podemos analizar un archivo XML en Android .

En el siguiente ejemplo vamos a utilizar el java.io.InputStream class para guardar el texto en un archivo y pan tostado class para hacer un texto en la pantalla que el texto se ha guardado.

Para implementar esto en su programa tendrá que class: java.io.InputStream , javax.xml.parsers.DocumentBuilder , javax.xml.parsers.DocumentBuilderFactory en su archivo de java.

A continuación, cree un archivo de diseño con una sola TextView como esto:

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/textView"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true" />

También tenemos que crear un archivo XML que vamos a analizar.

<?xml version="1.0"?>
<records>
<students>
<name>Manu Jemini</name>
<course>B.E.</course>
<semester>6</semester>
<collage>MPCT</collage>
<city>Gwalior</city>
<state>Madhya Pradesh</state>
</students>
</records>

En primer lugar vamos a tomar la referencia de la Vista de Texto del archivo de diseño, establecer una variable local con el nombre del archivo.

Después de que vamos a obtener los datos de la carpeta de recursos de esta manera:

InputStream I = getAssets().open("Students.xml");

Vamos a que todos los datos de este InputStream y guardarlas por separado en cadenas y el conjunto de esa cadena en el TextView .

1) Archivo de Java:

package com.example.hp.myapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import java.io.InputStream;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
public class MainActivity extends AppCompatActivity
{
TextView T;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
T=(TextView)findViewById(R.id.textView);
try{
InputStream I = getAssets().open("Students.xml");
DocumentBuilderFactory D=DocumentBuilderFactory.newInstance();
DocumentBuilder d=D.newDocumentBuilder();
Document mydocument =d.parse(I);
// to get the elements from document 'mydocument'
Element E=mydocument.getDocumentElement();
E.normalize();
NodeList MyListOfElemnts = mydocument.getElementsByTagName("students");
for (int i=0;i<MyListOfElemnts.getLength();i++)
{
Node N = MyListOfElemnts.item(i);
Element myElement = (Element) N;
NodeList N1 = myElement.getElementsByTagName("name").item(i).getChildNodes();
Node node1 = N1.item(i);
String name = node1.getNodeValue();
NodeList N2 = myElement.getElementsByTagName("course").item(i).getChildNodes();
Node node2 = N2.item(i);
String course = node2.getNodeValue();
NodeList N3 = myElement.getElementsByTagName("semester").item(i).getChildNodes();
Node node3 = N3.item(i);
String semester = node3.getNodeValue();
NodeList N4 = myElement.getElementsByTagName("collage").item(i).getChildNodes();
Node node4 = N4.item(i);
String collage = node4.getNodeValue();
NodeList N5 = myElement.getElementsByTagName("city").item(i).getChildNodes();
Node node5 = N5.item(i);
String city = node5.getNodeValue();
NodeList N6 = myElement.getElementsByTagName("state").item(i).getChildNodes();
Node node6 = N6.item(i);
String state = node6.getNodeValue();
T.setText("Name: "+name+"nCourse: "+course+"nSemester: " + semester+"nCollage: "+collage+"nCity: "+city+"nState: " + state);
}
}
catch(Exception exception)
{
exception.printStackTrace();}
}
}
}

2) archivo XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout >:android="http://schemas.android.com/apk/res/android"
>:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.hp.myapplication.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/textView"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true" />
</RelativeLayout>

3) Students.xml archivo:

<?xml version="1.0"?>
<records>
<students>
<name>Manu Jemini</name>
<course>B.E.</course>
<semester>6</semester>
<collage>MPCT</collage>
<city>Gwalior</city>
<state>Madhya Pradesh</state>
</students>
</records>

4) Archivo de Android Manifiesto:

<?xml version="1.0" encoding="utf-8"?>
<manifest >:android="http://schemas.android.com/apk/res/android"
package="com.example.hp.myapplication">
<uses-permission android:name="android.permission.CALL_PHONE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

salida


Deja un comentario

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