Aus "List<String>" img src rausfischen und anschließend img-Tag aus String entfernen

  • 0 Antworten
  • Letztes Antwortdatum
P

pyretta

Ambitioniertes Mitglied
1
Hallo,

ich hänge grade an einer kleinen eher kosmetischen Problematik. Wie der Titel schon sagt, möchte ich aus einem Array "List<String>" die Bildquellen rausfischen und in ein separates Array abspeichern, damit ich die Quelle dann einem ImageView zuweisen kann.

Der String, der in das Array dynamisch eingespeist wird, liegt im HTML-Format vor. Mein Script soll nach "img-Tags" suchen, wenn es eines findet soll es nach dem Attribut "src" suchen und dessen Inhalt in der Variablen "img" abspeichern. Die Variable wird dann "setImgLink" übergeben. Danach soll es den gesamten "img-Tag" aus dem "teasertxt" entfernen und den vorigen teasertxt innerhalb des Arrays überschreiben.

Hier der Code:

Code:
private List<String> summary;
private List<String> imagelink;

public Content(){
        summary = new ArrayList<String>();
        imagelink = new ArrayList<String>();
    }

public List<String> getSummary() {

        for (int i = 0; i < summary.size(); i++) {  
          
            String teasertxt = summary.get(i);   
     
            if (teasertxt.contains("<img ")){
                String img  = teasertxt.substring(teasertxt.indexOf("<img "));
                String cleanUp = img.substring(0, img.indexOf(">")+1);
                img = img.substring(img.indexOf("src=") + 5);
                int indexOf = img.indexOf("'");
                if (indexOf==-1){
                    indexOf = img.indexOf("\"");
                }
                img = img.substring(0, indexOf);
                
                setImgLink(img);
                
                teasertxt = teasertxt.replace(cleanUp, "");

                this.summary.remove(summary.get(i));
                this.summary.add(teasertxt);
                }
            
            else{
                String img = "http://www.domain.de/images/platzhalterbild.jpg";
                setImgLink(img);
            }            
        }        

        return this.summary;
    }

public void setSummary(String newsSummary) {
        this.summary.add(newsSummary);
    }

public String getImgLink(int pos) {
        if(pos >= 0){
            return this.imagelink.get(pos);
        }else{
            return "";
        }
    }

public void setImgLink(String newsImage) {
        this.imagelink.add(newsImage);
        System.out.println("setImgLink ist: " + newsImage);
    }

In dem Testdurchlauf sind insgesamt 20 Einträge, davon 3 mit Bild, im Array vorhanden. Durch meine "for-Schleife" werden 2 Einträge mit Bildern gelöscht und der dritte Eintrag mit Bild bleibt unberührt.

Der Aufbau der Einträge ist aber jeweils immer der Gleiche:

Code:
<img width="150" height="98" src="http://www.domain.de/images/bild1.jpg" class="attachment-thumbnail" alt="Lorem ipsum dolor" style="float:left; margin:0 15px 15px 0;" />Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu[...]
.............
.............
<img width="150" height="89" src="http://www.domain.de/images/bild2.jpg" class="attachment-thumbnail" alt="Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes" style="float:left; margin:0 15px 15px 0;" />Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu[...]
.............
.............
<img width="150" height="150" src="http://www.domain.de/images/bild3.jpg" class="attachment-thumbnail" alt="Lorem ipsum dolor sit amet, consectetuer adipiscing elit." style="float:left; margin:0 15px 15px 0;" />Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu[...]
Die Einträge mit den Bildern "bild1.jpg" und "bild3.jpg" werden gelöscht. Der Eintrag mit "bild2.jpg" wird inklusive img-Tag ausgegeben, bleibt also unberührt.

Die Bildquellen werden aber korrekt ausgelesen und übergeben. Lediglich das nachträgliche "säubern" der Einträge schlägt fehl.

Kann mir hier jemand beim Feinschliff helfen?
 
Zuletzt bearbeitet:
Zurück
Oben Unten