19nb84 Geschrieben 8. August 2006 Geschrieben 8. August 2006 Hilfe benötigt bei Textausgabe: Wie kann ich mir den Text zwischen <p> und </p> ausgeben lassen?? Hab es schon mit substring probiert aber läuft irgendwie nicht! Ich schreib grad an einer Anwendung, die aus einer Klasse sämtliche Artikelbeschreibungen auslesen soll. Jede Artikelbeschreibung steht eben in <p> </p> drin. Die Merker werden gesetzt aber irgendwie schaffe ich es nicht, mir den Text ausgeben zu lassen BufferedReader in = new BufferedReader (new FileReader(datei)); try { int iPosMerker; int iFirst; while ((sLine = in.readLine())!= null) { //Dateiinhalt ausgeben sFileInhalt = sLine; System.out.println(sFileInhalt); //nach public suchen int iPublic = sFileInhalt.indexOf("public"); if (iPublic != -1) { //1. public merken und anzeigen System.out.println(iPublic); iPosMerker = iPublic; //nach <p> suchen while ((sLine = in.readLine())!= null) { sFileInhalt = sLine; System.out.println(sFileInhalt); iFirst = sFileInhalt.indexOf("<p>"); if(iFirst != -1) { //Ausgabe Merker <p> System.out.println(iFirst); } else { //auf 0 setzten iFirst = 0xffff; //suche nach </p> iPosMerker = sFileInhalt.indexOf("</p>"); if (iPosMerker >= 0) { iFirst = iPosMerker; //Ausgabe Merker </p> System.out.println(iFirst); } } } } } Zitieren
bigredeyes Geschrieben 8. August 2006 Geschrieben 8. August 2006 String neuerstring = line.substring(start, ende); das sollte eigentlich funktionieren..... bigredeyes Zitieren
geloescht_Newlukai Geschrieben 8. August 2006 Geschrieben 8. August 2006 Kein Wunder, wenn man nichts dafür tut, daß wer Text gesichert/ausgegeben wird. Aber gut: Du bist Dir im Klaren darüber, daß Du einen Text über mehrere Zeilen liest und daher immer wieder 'ne neue sLine hast? Du mußt also den Text von "<p>" bis zum Ende der Zeile sichern, dann alle weitere Zeilen dranhängen bis Du eine Zeile findest, in der "</p>" steht. Empfehlen würde ich da einen StringBuffer. Über append() kannst Du an den immer wieder einen String anhängen, so daß Du später den kompletten Text innerhalb der p-Tags in diesem StringBuffer hast. Das reicht vorerst mal als Tip, schließlich macht Übung den Meister. Noch was: Warum setzt Du iFirst nicht einfach auf 0 statt auf 0xffff? Zitieren
19nb84 Geschrieben 8. August 2006 Autor Geschrieben 8. August 2006 Kein Wunder, wenn man nichts dafür tut, daß wer Text gesichert/ausgegeben wird. Aber gut: Du bist Dir im Klaren darüber, daß Du einen Text über mehrere Zeilen liest und daher immer wieder 'ne neue sLine hast? Du mußt also den Text von "<p>" bis zum Ende der Zeile sichern, dann alle weitere Zeilen dranhängen bis Du eine Zeile findest, in der "</p>" steht. Empfehlen würde ich da einen StringBuffer. Über append() kannst Du an den immer wieder einen String anhängen, so daß Du später den kompletten Text innerhalb der p-Tags in diesem StringBuffer hast. Das reicht vorerst mal als Tip, schließlich macht Übung den Meister. Hallo, ja, darüber bin ich mir schon im klaren das ich immer wieder ne neue sLine hab. z. B. sieht eine Artikelbeschreibung folgendermaßen aus: /** * <p> * Hier steht die Artikelbeschreibung * und hier noch mehr * </p> */ ich bin jetzt deinem Rat gefolgt mit dem StringBuffer StringBuffer sbText = new StringBuffer(); sbText.append(sLine); System.out.println(sbText); jetzt fehlt mir nur noch das abspeichern der sLine und das zufügen der nächsten sLine. Da hab ich noch Probleme mit mich irritieren die (*) noch! Noch was: Warum setzt Du iFirst nicht einfach auf 0 statt auf 0xffff? Hab ich übrigens geändert. Keine Ahnung warum ich da nicht gleich 0 genommen habe. Keine Absicht von mir mit dem 0xffff Gruß Zitieren
geloescht_Newlukai Geschrieben 9. August 2006 Geschrieben 9. August 2006 ich bin jetzt deinem Rat gefolgt mit dem StringBuffer StringBuffer sbText = new StringBuffer(); sbText.append(sLine); System.out.println(sbText); jetzt fehlt mir nur noch das abspeichern der sLine und das zufügen der nächsten sLine. Da hab ich noch Probleme mit mich irritieren die (*) noch! Das sieht ja schon mal gut aus. Jetzt mußt Du nur noch jede sLine, die zwischen den p-Tags hängt per sbText.append(sLine) and den StringBuffer anhängen. Der StringBuffer darf dabei natürlich nur einmal und nicht jedesmal initialisiert werden Du mußt also herausfinden, ob die aktuelle gelesene sLine zwischen p-Tags liegt oder nicht und je nachdem dem StringBuffer hinzufügen. Probier' mal rum, falls Du hängst, melde Dich wieder. Hab ich übrigens geändert. Keine Ahnung warum ich da nicht gleich 0 genommen habe. Keine Absicht von mir mit dem 0xffff Hab' auch mehr aus Neugierde gefragt, als Dich belehren zu wollen Zitieren
19nb84 Geschrieben 10. August 2006 Autor Geschrieben 10. August 2006 Das sieht ja schon mal gut aus. Jetzt mußt Du nur noch jede sLine, die zwischen den p-Tags hängt per sbText.append(sLine) and den StringBuffer anhängen. Der StringBuffer darf dabei natürlich nur einmal und nicht jedesmal initialisiert werden Du mußt also herausfinden, ob die aktuelle gelesene sLine zwischen p-Tags liegt oder nicht und je nachdem dem StringBuffer hinzufügen. Probier' mal rum, falls Du hängst, melde Dich wieder. Danke noch für den Tipp Läuft alles wie es sein sollte. Hab ne while-Schleife benutzt und er ließt alles einwandfrei ein. Danke Gruß Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.