jsoup get class name mit leerzeichen

Darknet

Bekanntes Mitglied
Wie kann man einen klassennamen mit jsoup auslesen wenn ein leerzeichen dabei ist?

Elements sindtoll = doc1.select("div.toll");
<div class="toll"></div> // wird erkannt
<div class="toll "></div>// wird nicht erkannt erkannt soll aber erkannt werden
 
Minimalbeispiel:

Java:
    String s = ""
             + "<div class=\"toll\"></div> // wird erkannt\n"
             + "<div class=\"toll \"></div>// wird nicht erkannt erkannt soll aber erkannt ";
    Document parse = Jsoup.parse(s);
    Elements es = parse.getElementsByAttributeValueStarting("class", "toll");
    System.out.println("es:\n" + es);

Code:
es:
<div class="toll"></div>
<div class="toll "></div>

Auch parse # getElementsByAttributeValue() würd das komische "toll " erkennen.
 
oder die bereitgestellte Funktion von jsoup
Java:
Elements es = parse.getElementsByClass("toll");
ist vielleicht leserlicher, da die Methode exakt so heißt wie das was du machen möchtest.
 
Wie kann man einen klassennamen mit jsoup auslesen wenn ein leerzeichen dabei ist?
Es ging darum dass ein Attribut mit was Bestimmtem Anfängt
Nein und genau das ist die Schwachstelle bei deinem Beispiel.
Wenn ein div tag mit mehreren Klassen vorhanden ist und die Klasse "toll" nicht am Anfang steht erkennt dein Code es nicht.
"<div class=\"blub toll\"></div>// wird nicht erkannt erkannt soll aber erkannt ";

Wohingegen die bereitgestellte Funktion es erkennt.
Code:
getElementsByClass("toll");
 
Er hat nicht geschrieben, wo ein Leerzeichen dabei ist. Dem gegebenen Code nach steht das Bestimmte immer am Anfang. Folglich ist nur meine Lösung richtig.
 
Ok die Aussage verstehe ich jetzt nicht ^^
Er hat nicht geschrieben, wo ein Leerzeichen dabei ist.
Wie kann man einen klassennamen mit jsoup auslesen wenn ein leerzeichen dabei ist?

Das ist nun wirklich nicht zu entnehmen. Wenn das eine zwingende Voraussetzung wäre dann wäre es bestimmt explizit angegeben. Ich denke eher das der andere Fall einfach nicht bedacht wurde.
Dem gegebenen Code nach steht das Bestimmte immer am Anfang. Folglich ist nur meine Lösung richtig.

Sonst könnte man ja auch sagen der Ersteller hat in seinen Beispielcode nur div tags und deine Methode findet alle Elemente mit classname "toll" und ist deshalb falsch🙄
 

Zurück
Oben