2017-07-14 4 views
0

Ich versuche, einen einfachen dom Autor und Leser in internen SpeichernXML-Parsing dom-Datei nicht gefunden

Dies ist der Code zu machen

protected void write_xml_file(String file_name) { 
    //if (file_name == null) file_name = "spells.xml"; 
    FileOutputStream fos; 
    try { 
     fos = openFileOutput(file_name, Context.MODE_APPEND); 
     XmlSerializer serializer = Xml.newSerializer(); 
     serializer.setOutput(fos, "UTF-8"); 
     serializer.startDocument(null, Boolean.valueOf(true)); 
     serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true); 
     serializer.startTag(null, "spells"); 
     for (int j = 0; j < 3; j++) { 
      serializer.startTag(null, "spell"); 
      serializer.text("a" + j); 
      serializer.endTag(null, "spell"); 
     } 
     serializer.endDocument(); 
     serializer.flush(); 
     fos.close(); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 


} 

protected void read_xml_file(String file_name) { 
    try { 
     File fXmlFile = new File(file_name); 
     DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder dBuilder = null; 
     dBuilder = dbFactory.newDocumentBuilder(); 
     Document doc = dBuilder.parse(fXmlFile); 
     doc.getDocumentElement().normalize(); 
     NodeList nList = doc.getElementsByTagName("spells"); 


     for (int temp = 0; temp < nList.getLength(); temp++) { 

      Node nNode = nList.item(temp); 

      //System.out.println("\nCurrent Element :" + nNode.getNodeName()); 

      if (nNode.getNodeType() == Node.ELEMENT_NODE) { 

       Element eElement = (Element) nNode; 

       //System.out.println("spell id : " + eElement.getAttribute("id")); 
       //System.out.println("name : " + eElement.getElementsByTagName("firstname").item(0).getTextContent()); 
       //System.out.println("description : " + eElement.getElementsByTagName("firstname").item(0).getTextContent()); 
       //System.out.println("school : " + eElement.getElementsByTagName("lastname").item(0).getTextContent()); 

      } 
     } 


     } catch (ParserConfigurationException e) { 
     e.printStackTrace(); 
    } catch (SAXException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

für kein Problem zu schreiben, wird die Datei geschrieben korrekt

wenn ich versuche ich einen Fehler haben zu lesen: nicht

jemand gefunden Datei kann mir helfen?

dank

Mauro

Antwort

0

Während Ihr sind die Speicherung in der internen Dateiverzeichnis zu speichern, aber während Sie nur den Namen

Beispiel nur geben abrufen, seine Schreiben in Daten/data/[Paket name]/files/[Dateiname] Sie versuchen jedoch, von [Dateiname] abzurufen.

Anstatt also direkt aus dem Dateinamen zu bekommen, während XML-Datei lesen, können Sie wie folgt versuchen,

File fXmlFile = new File(context.getFilesDir() + File.separator + file_name); 

Note: you can get getFilesDir() from Context, so try to send context in parameter.