Autore Topic: Parsing File XML  (Letto 611 volte)

Offline donkilluminati

  • Nuovo arrivato
  • *
  • Post: 31
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    GALAXY NEXT
  • Sistema operativo:
    2.2
Parsing File XML
« il: 12 Luglio 2012, 13:11:22 CEST »
0
Ragazzi ho un piccolo problema.
Ho creato un activity che mi legge un file xml dalla cartella res per testare il funzionamento dell'app con l'emulatore.
Adesso dovrei modificare il codice per far si che il parsing sia effettuato su un file presente sulla sdcard e non sun un file presente nel res.
Potete aiutarmi?
Grazie....

Offline donkilluminati

  • Nuovo arrivato
  • *
  • Post: 31
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    GALAXY NEXT
  • Sistema operativo:
    2.2
Re:Parsing File XML
« Risposta #1 il: 12 Luglio 2012, 13:12:51 CEST »
0
vi posto il codice...

Codice: [Seleziona]
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) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 } catch (IOException e) {
  // TODO Auto-generated catch block
  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();
  }
}