do you write it into a string?
mfg Chri






padde wrote:Okay so you have a remote xml file like http://www.mywebsite/parseme.xml
and want to parse this file in android right?!
I dont realy get it what you plan to do.. and why you want a local copy on the device.








padde wrote:This sample code parse...Using java Syntax Highlighting
package de.XMLparser; import java.io.IOException; import java.io.InputStream; import java.util.Vector; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.Attributes; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.XMLReader; import org.xml.sax.helpers.DefaultHandler; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; class ParsedExampleDataSet { private String schoolname; private String studentname; private String studentage; private String studentaddress; private String schooladdress; public String toString() { return "Student's Name: " + studentname + "n" + "Student's Address: " + studentaddress + "n" + "Student's Age: " + studentage + "nn" + "School's Name: " + schoolname + "n" + "School's Address: " + schooladdress; } public String getSchoolName() { return schoolname; } public void setSchoolName(String schoolname) { this.schoolname = schoolname; } public String getStudentName() { return studentname; } public void setStudentName(String studentname) { this.studentname = studentname; } public String getStudentAge() { return studentage; } public void setStudentAge(String studentage) { this.studentage = studentage; } public String getStudentAddress() { return studentaddress; } public String getSchoolAddress() { return schooladdress; } public void setStudentAddress(String studentaddress) { this.studentaddress = studentaddress; } public void setSchoolAddress(String schooladress) { this.schooladdress = schooladress; } } class ContentHandler extends DefaultHandler { private enum Tags { Test, Name, Age, School, Student, Address, Entry } private boolean in_schoolTag = false; private boolean in_studentTag = false; private ParsedExampleDataSet DataSet; private Vector<ParsedExampleDataSet> MyParsedExampleDataSets; public ContentHandler() { super(); this.MyParsedExampleDataSets = new Vector<ParsedExampleDataSet>(); } public Vector<ParsedExampleDataSet> getParsedExampleDataSets() { return this.MyParsedExampleDataSets; } public void startDocument() throws SAXException { } public void endDocument() throws SAXException { } public void startElement(String n, String l, String q, Attributes a) { switch(Tags.valueOf(l)) { case School: in_schoolTag = true; break; case Student: in_studentTag = true; break; case Address: if(in_studentTag) DataSet.setStudentAddress(a.getValue("displayname")); if(in_schoolTag) DataSet.setSchoolAddress(a.getValue("displayname")); break; case Age: DataSet.setStudentAge(a.getValue("value")); break; case Name: if(in_studentTag) DataSet.setStudentName(a.getValue("displayname")); if(in_schoolTag) DataSet.setSchoolName(a.getValue("displayname")); break; case Entry: DataSet = new ParsedExampleDataSet(); break; } } public void endElement(String n, String l, String q) { switch(Tags.valueOf(l)) { case School: in_schoolTag = false; break; case Student: in_studentTag = false; break; case Entry: MyParsedExampleDataSets.add(DataSet); break; } } public void characters(char ch[], int start, int length) { } } public class XMLparserSample extends Activity { private TextView myTextView; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Vector<ParsedExampleDataSet> test = read(getResources().openRawResource(R.raw.sample)); String text = ""; for(int i=0; i < test.size(); i++) text += test.get(i).toString()+"n-------------------------n"; myTextView = (TextView) findViewById(R.id.textview); myTextView.setText(text); } public Vector<ParsedExampleDataSet> read(InputStream in) { SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp; try { sp = spf.newSAXParser(); XMLReader xr = sp.getXMLReader(); ContentHandler ch = new ContentHandler(); xr.setContentHandler(ch); xr.parse(new InputSource(in)); return ch.getParsedExampleDataSets(); } catch (ParserConfigurationException e) { } catch (SAXException e) { } catch (IOException e) {} return null; } } Parsed in 0.058 seconds, using GeSHi 1.0.8.4
...this sample.xml in the res/raw folder...Using xml Syntax Highlighting
<?xml version="1.0"?> <Test> <Entry> <Student> <Name displayname = "Jane"/> <Address displayname = "ABC"/> <Age value = "20"/> </Student> <School> <Name displayname = "NTUST"/> <Address displayname = "123"/> </School> </Entry> <Entry> <Student> <Name displayname = "Jane2"/> <Address displayname = "ABCD"/> <Age value = "21"/> </Student> <School> <Name displayname = "NTUST2"/> <Address displayname = "1234"/> </School> </Entry> </Test> Parsed in 0.004 seconds, using GeSHi 1.0.8.4
... and shows the results in the TextView of this main.xml in res/layoutUsing xml Syntax Highlighting
<?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:id="@+id/textview" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout> Parsed in 0.002 seconds, using GeSHi 1.0.8.4
Greets
Padde


Users browsing this forum: No registered users and 9 guests