Veröffentlicht 8. August 200619 j 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); } } } } }
8. August 200619 j String neuerstring = line.substring(start, ende); das sollte eigentlich funktionieren..... bigredeyes
8. August 200619 j 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?
8. August 200619 j 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ß
9. August 200619 j 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
10. August 200619 j 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ß
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.