Zum Inhalt springen

Huecheln

Mitglieder
  • Gesamte Inhalte

    11
  • Benutzer seit

  • Letzter Besuch

  1. Hallo zusammen, Ich habe eine Ursprungs-XML die ich mit Java in ein Document (mDoc) parse, das Problem ist aber, das der DocType der alten XML-Datei nach dem Bearbeiten nicht mit in die Neue geschrieben wird. Unten habe ich zwei Beispiele, eins wie es ausgegeben wird und eins wie es sein soll und auch in der alten XML-Datei ist. So soll es sein: <?xml version="1.0" ?> <!DOCTYPE connections (View Source for full doctype...)> <connections> <connection> <ConnectionType>JDBC</ConnectionType> ... </connection> </connections> Und wird es ausgegeben: <?xml version="1.0" encoding="UTF-8" ?> <connections> <connection> <ConnectionType>JDBC</ConnectionType> ... </connection> </connections> Hier ein Auszug vom Code public void editXmlFile() { try{ File xmlFile = new File(mPath); if(!xmlFile.exists()){ System.out.println("The given File does not exist."); }else if(mPath == null || mPath.equals("")){ System.out.println("First you have to set the path of the XML-File."); }else { DOMParser parser = new DOMParser(); parser.parse(xmlFile.getAbsolutePath()); mDoc = parser.getDocument(); // Hier wird mit mDoc gearbeitet Transformer transformer = TransformerFactory.newInstance().newTransformer(); transformer.setOutputProperty(OutputKeys.METHOD,"xml"); DOMSource source = new DOMSource(mDoc); StreamResult result = new StreamResult(xmlFile); transformer.transform(source, result); } }catch(Exception ex){ } } Wäre nett, wenn mir jemand einen Vorschlag machen könnte. Thx.
  2. Haste da vielleicht mal ein Beispiel für mich, wie man das machen könnte. :confused:
  3. Hallo ich hab mal wieder ein Problem mit Zip-Files. Ich habe ein Zip-File, in dem verschiedene XML-Dateien sind und diese möchte ich mit DOM parsen. wich ich da mit ungezippten mache steht in dem Beispiel-Code. Aber wie mache ich das mit gezippten Dateien? File file = new File("test.xml"); System.out.println(file.getName()); try{ DOMParser parser = new DOMParser(); parser.parse(file.getAbsolutePath()); Document doc = parser.getDocument(); NodeList nodes = doc.getElementsByTagName("Depends"); System.out.println("There are " + nodes.getLength()+" elements."); for(int x=0;x<nodes.getLength();x++){ System.out.println(nodes.item(x).getTextContent()); } }catch(Exception ex){ ex.printStackTrace(); } Was nun wenn file = new File("testZip.zip/test.xml") ist ? Danke schon mal :-)
  4. OK, hab die Lösung gefunden: new BufferedReader(new InputStreamReader(/*mein InputStream*/)); :upps Dank für eure Hilfe.
  5. So hab das mit dem getInputStream gemacht. aber wie baue ich das jetzt in den BufferedReader ein? public boolean[] controlXML(File pPatch, File zip,boolean[] bZipOK,Logger mLog){ if(bZipOK[0]){ try{ ZipFile zipFile = new ZipFile(zip.getAbsolutePath()); for(Enumeration<? extends ZipEntry> entries = zipFile.entries();entries.hasMoreElements(){ ZipEntry entry = new ZipEntry(entries.nextElement().getName()); if(entry.getName().equalsIgnoreCase(xmlNameDummy)){ bZipOK[2] = true; // Hier mit getInputStream InputStream test = zipFile.getInputStream(entry); // Und jetzt? } } }catch(Exception ex){ mLog.error("Eine Exception ist aufgetreten: "+ex.getMessage()); ex.printStackTrace(); System.exit(0); } } return bZipOK; } [/code] Sorry, aber ich konnte mit den Beispielen auf anderen Seiten nichts anfangen und ich arbeite mich noch in Java ein.
  6. Ja, das sind ganz einfache textdateien, die ich zeile für zeile ausgeben möchte. ich möchte auch nicht jede datei in dem Zip Verzeichnis ausgeben, sondern nur bestimmte. aber mir geht es jetzt erstmal darum, überhaupt die zeilen aus der gezippten Textdatei zu bekommen. Das ich die richtige Datei finden kann, funktioniert ja schon (siehe oben), aber dann möchte ich diese Datei dann Zeile für Zeile ausgeben.
  7. Jop hatte ich vorher schon mal gemacht. Da kommt dann der Pfad des Projektes. Aber was meint der damit? Entpackt der die Datei dahin oder wie? Was muss ich an dem Code ändern?
  8. Hab noch mal den Quellcode mit dem Teil, der nicht funktioniert. Also das auskommentierte funktioniert nicht. public boolean[] controlXML(File pPatch, File zip,boolean[] bZipOK,Logger mLog){ if(bBool[0]){ try{ ZipFile zipFile = new ZipFile(zip.getAbsolutePath()); String nameDummy; for(Enumeration<? extends ZipEntry> entries = zipFile.entries();entries.hasMoreElements(){ File zipEntryFile = new File(((ZipEntry)entries.nextElement()).getName()); if(zipEntryFile.getName().equalsIgnoreCase(nameDummy)){ bBool[2] = true; mLog.debug("XML-Datei : "+zipEntryFile.getName()); /* BufferedReader br = new BufferedReader(new FileReader(zipEntryFile.getAbsolutePath())); String zeile; while((zeile=br.readLine()) != null){ System.out.println(zeile); } */ } } }catch(Exception ex){ mLog.error("Eine Exception ist aufgetreten: "+ex.getMessage()); ex.printStackTrace(); System.exit(0); } } return bZipOK; } [/code] Fehlermeldung: java.io.FileNotFoundException: ... (Das System kann den angegebenen Pfad nicht finden)
  9. Eine Exception habe ich ja noch nicht. Die Variabel bBool ist nur um sie auf true zu setzen, wenn die richtige Datei gefunden wurde und die dummyvariable ist ein Namen Dummy, da alle gesuchten Dateien nach dem selben Muster aufgebaut sind und so vergleiche ich, ob es sich auch wirklich um die gesuchte Datei handelt. Um den Inhalt aus der gefundenen Datei dann zu bekommen, habe ich es versucht wie ganz oben. Dann kommt aber die Meldung, dass die Datei nicht existiert.
  10. So hab mich mal versucht. WEnn ich nun aber versuche den Inhalt aus zipEntryFile zu bekommen geht das nicht. Kann mir einer weiter helfen ? public boolean[] controlXML(File pPatch, File zip,boolean[] bZipOK,Logger mLog){ if(bBool[0]){ try{ ZipFile zipFile = new ZipFile(zip.getAbsolutePath()); for(Enumeration<? extends ZipEntry> entries = zipFile.entries();entries.hasMoreElements(){ File zipEntryFile = new File(((ZipEntry)entries.nextElement()).getName()); if(zipEntryFile.getName().equalsIgnoreCase(nameDummy)){ bBool[2] = true; mLog.debug("XML-Datei : "+zipEntryFile.getName()); } } }catch(Exception ex){ mLog.error("Eine Exception ist aufgetreten: "+ex.getMessage()); ex.printStackTrace(); System.exit(0); } } return bBool; } [/code]
  11. Hallo erstman. Ich habe ein ZIP-Archiv, in dem ich nach einer bestimmten Datei suchen will. Das hab ich auch soweit hin bekommen. Aber wie bekomme ich es jetzt hin, dass ich genau diese Datei dann Zeilenweise auf der Konsole ausgeben kann. Wie das mit Dateien ausserhalb eines ZIP-Archievs geht, steht im Quellcode. Aber wie macht man das nun mit gezippten Dateien ??? try{ File rootDirectory = new File("C:/Dokumente und Einstellungen/huecheln/Desktop/Testdateien"); File[] rootDirectoryList = rootDirectory.listFiles(); for(int i=0;i<rootDirectoryList.length;i++){ File File = new File(rootDirectoryList[i].getAbsolutePath()); System.out.println(File.getName()+":"); BufferedReader br = new BufferedReader(new FileReader(xmlFile.getAbsolutePath())); String zeile; try{ while((zeile = br.readLine()) != null){ System.out.println(zeile); } }catch(IOException e){ e.printStackTrace(); } } }catch(FileNotFoundException e1){ e1.printStackTrace(); } Wie ihr seht, ist das ein einfacher Ordner, aber wie geht das nun mit einem ZIP-Archiv. Danke :confused:

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...