Jsoup 获取 class 名称

Jsoup get class name

我用

解析元素
 Elements input1 = pageListingParsed.select("form[name=MailForm] textarea");

示例输出为:

 <textarea name="dec13d35885064571998cc1c81facc28" rows="5" wrap="virtual" class="form-control c-545599b92f2d2b5a09f21c06d490e810"></textarea>

如何获得 class 个名字?在那种情况下,我需要将 c-545599b92f2d2b5a09f21c06d490e810 分配给一个变量。

谢谢

如果你确定元素大小为1,那么你需要获取第一个元素并使用方法attr(...):

Element e = input1.get(0);
System.out.println(e.attr("class"));

输出将是:

form-control c-545599b92f2d2b5a09f21c06d490e810

编辑:

如果只得到第二部分,你可以简单地使用String.split(regex)方法。

例如

String s = "form-control c-545599b92f2d2b5a09f21c06d490e810";
System.out.println(s.contain(" ")? s.split(" ")[1] : s);

输出:

c-545599b92f2d2b5a09f21c06d490e810

您可以使用 JSoup method classNames 获取一个元素的所有 classes。这就是您将如何使用它:

Elements input1 = pageListingParsed.select("form[name=MailForm] textarea");
Set<String> classNames = input1.first().classNames();

请注意,class 名称在您解析的 HTML 中的顺序可能不同。这就是为什么方法 returns 是一个集合而不是一个有序的数据结构。