userei il selettore regex css li[class~=^$]
:
String html= "<li class=\"\" > </li>"
+ "<li class= > </li>"
+ "<li class > </li>"
+ "<li > </li>"
+ "<li class=\"test\" > </li>";
Document doc = Jsoup.parse(html,"");
Elements liWithClassButNoName = doc.select("li[class~=^$]");
for (Element li:liWithClassButNoName){
System.out.println("li = "+ li);
}
risultati in questa uscita (solo i primi 3 lis corrispondono):
li = <li class=""> </li>
li = <li class> </li>
li = <li class> </li>
Spiegazione:
~=
mezzi regex e ^$
cerca una stringa vuota
Jsoup cancellerà =
nel secondo esempio elemento <li class= >
. L'espressione regolare corrisponde anche a una stringa non esistente, quindi se hai bisogno di filtrare questi elementi potresti voler utilizzare la soluzione fornita da @TDG.