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); } } } } }
bigredeyes Geschrieben 8. August 2006 Geschrieben 8. August 2006 String neuerstring = line.substring(start, ende); das sollte eigentlich funktionieren..... bigredeyes
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?
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ß
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
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ß
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden