Разбор XML с Android - PullRequest
       0

Разбор XML с Android

1 голос
/ 05 октября 2011

Я занимаюсь разработкой приложения для Android 2.2.

У меня есть следующий XML-файл в res / xml:

<?xml version="1.0" encoding="iso-8859-1"?>
<data>
    <turo>
        <name>Rodo</name>
        <latitude>37.212123</latitude>
        <longitude>0.1231231</longitude>
    </turo>
</data>

Я схожу с ума, потому что не могу найти пример, чтобы посмотреть, как я могу разобрать этот файл.

У меня также есть следующий класс для хранения полученных данных:

public class Turo{
    private String name;
    private Location location;

    public String getName(){
        return name;
    }
    public void setName(String name){
        this.name = name;
    }
    public Turo(String name){
        setName(name);
    }

    public void setLocation(Location location) {
        this.location = location;
    }
    public Location getLocation() {
        return location;
    }
}

Это мой метод для его анализа (он не завершен):

public Vector<Turo> getTurosFromXML(Activity activity, int xmlId) throws XmlPullParserException, IOException {
    StringBuffer stringBuffer = new StringBuffer();
    Resources res = activity.getResources();

    XmlResourceParser xpp = res.getXml(xmlId);
    xpp.next();
    int eventType = xpp.getEventType();

    while (eventType != XmlPullParser.END_DOCUMENT)
    {
...
    }
}

Можете ли вы помочь мне, пожалуйста?

1 Ответ

0 голосов
/ 05 октября 2011

Вы можете попробовать этот пример:

package com.exercise.AndroidXmlResource;

import java.io.IOException;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;

import android.app.Activity;
import android.content.res.Resources;
import android.content.res.XmlResourceParser;
import android.os.Bundle;
import android.widget.TextView;

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

    TextView myXmlContent = (TextView)findViewById(R.id.my_xml);
    String stringXmlContent;
    try {
        stringXmlContent = getEventsFromAnXML(this);
        myXmlContent.setText(stringXmlContent);
    } catch (XmlPullParserException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

private String getEventsFromAnXML(Activity activity) throws XmlPullParserException, IOException {
    StringBuffer stringBuffer = new StringBuffer();
    Resources res = activity.getResources();
    XmlResourceParser xpp = res.getXml(R.xml.myxml);
    xpp.next();
    int eventType = xpp.getEventType();
    while (eventType != XmlPullParser.END_DOCUMENT) {
         if(eventType == XmlPullParser.START_DOCUMENT) {
              stringBuffer.append("--- Start XML ---");
         } else if(eventType == XmlPullParser.START_TAG) {
             stringBuffer.append("\nSTART_TAG: "+xpp.getName());
         } else if(eventType == XmlPullParser.END_TAG) {
             stringBuffer.append("\nEND_TAG: "+xpp.getName());
         } else if(eventType == XmlPullParser.TEXT) {
             stringBuffer.append("\nTEXT: "+xpp.getText());
         }
         eventType = xpp.next();
   }
   stringBuffer.append("\n--- End XML ---");
   return stringBuffer.toString();
}

}

XML-файл пользовательского интерфейса Android будет иметь вид:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/my_xml" />
</LinearLayout>

И XML, проанализированный в этомВот пример:

<?xml version="1.0" encoding="utf-8"?>
<rootelement1>
    <subelement>
         Hello XML Sub-Element 1
    </subelement>
    <subelement>
         Hello XML Sub-Element 2
         <subsubelement>Sub Sub Element</subsubelement>
    </subelement>
</rootelement1>

ПРИМЕЧАНИЕ. Информация извлечена из Android-er

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...