Pregunta

El siguiente fragmento de código extrae un solo elemento, específicamente el primero elemento:

  String linkHref = "";
  String linkText = "";
  Elements links = div.getElementsByTag("a");
  for (Element link : links) {
    linkHref = link.attr("href");
    linkText += link.text();              
    break;
  }    

Este es un código realmente engorroso en comparación con lo conciso links.get(0) Pero tiene una característica importante: no tirar un IndexOutOfBoundException Si los elementos están vacíos. En cambio, simplemente dejará las cuerdas vacías.

Puedo encapsular esto en mi propia función, pero es difícil para mí creer que Jsoup no tiene tal función (prefiero usar la función de la biblioteca sobre "reinventar la rueda" tanto como sea posible). Busqué la documentación pero no pude encontrar ninguna.

¿Sabes si tan "seguro Elements.get(0)"¿Existe en Jsoup?

¿Fue útil?

Solución

Elements.first () Devuelve el primer elemento de elementos, o nulo si está vacío.

También puedes usar Elements.isEmpty () Para verificar si algo coincide con su selector.

Por ejemplo, dependiendo de lo que esté tratando de hacer:

Element link = div.select("a").first();
if (link != null) {
  String href = link.attr("href");
  String text = link.text();
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top