1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

XML-Datei aus Internet lokal speichern und verarbeiten

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Andro-medanebel, 10.02.2012.

  1. Andro-medanebel, 10.02.2012 #1
    Andro-medanebel

    Andro-medanebel Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    46
    Erhaltene Danke:
    0
    Registriert seit:
    09.10.2010
    Eine XML-Datei aus dem Internet soll lokal gespeichert
    und dann die lokale Datei genutzt werden.
    Der XML-Parser benötigt dann als Parameter
    den Namen der lokalen Datei als String.

    Mein bisheriger Versuch (try/catch hier aus
    Lesbarkeitsgründen weggelassen):

    Code:
    //Datei aus Internet lokal speichern:
    FileOutputStream fos = null;
    fos = openFileOutput("http://www.irgendwas.com/info.xml, Context.MODE_PRIVATE); //Laufzeitfehler
    fos.close();
    
    //aus Internet eingelesene, jetzt lokale Datei öffnen
    FileInputStream fis = null;
    fis = openFileInput(info.xml);
    
    //Ich habe nur einen FileInputStream, brauche aber
    //Namen der lokalen Datei als String als Übergabewert:
    
    //StartXMLParser(Name_der_lokalen_Datei_als_String);
    
    fis.close();
    
    //So sieht Parser aus:
    public boolean StartXMLParser(String sURL)
    {
     ...
     URL url = new URL(sURL);
     InputStream inputstream = url.openStream();
     xmlreader.parse(new InputSource(inputstream));
     ...
    }
    
     
  2. swordi, 10.02.2012 #2
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    ja und wo ist das problem ? fehlermeldungen ? oder sollen wir einfach nur den code bewundern ? :D
     
  3. Andro-medanebel, 10.02.2012 #3
    Andro-medanebel

    Andro-medanebel Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    46
    Erhaltene Danke:
    0
    Registriert seit:
    09.10.2010
    Laufzeitfehler bei:
    fos = openFileOutput("http://www.irgendwas.com/info.xml, Context.MODE_PRIVATE);

    Wie bekomme ich Namen der lokalen Datei als String zurück,
    damit ich den String dem Parser übergeben kann?
     
  4. Kranki, 10.02.2012 #4
    Kranki

    Kranki Ehrenmitglied

    Beiträge:
    3,831
    Erhaltene Danke:
    814
    Registriert seit:
    19.07.2009
    Tablet:
    Samsung Galaxy Tab 3 7.0 Lite
    In Zukunft wäre es hilfreich, wenn du einen Log-Auszug mit der Exception und genauen Fehlermeldung posten würdest.

    In diesem Fall macht das nichts, weil dein Problem schlicht daran liegt, dass du nicht weißt, was openFileOutput eigentlich macht.
    http://developer.android.com/reference/android/content/Context.html#openFileOutput%28java.lang.String,%20int%29
    Das dient nicht zum Download, sondern dazu, in lokale Dateien zu schreiben. Als lokalen Dateinamen fütterst du der Funktion aber eine URL, was dann natürlich nicht geht.
    Die Lösung für dein Problem ist also, dir selber einen Dateinamen festzulegen und den tatsächlichen Download zu implementieren. Oder nur den Download zu implementieren und die Datei gar nicht zu speichern, je nach Verwendungszweck und Größe dieser XML.
     

Diese Seite empfehlen