【问题标题】:Jsoup get class nameJsoup 获取类名
【发布时间】:2015-12-04 16:38:28
【问题描述】:

我用

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

示例输出为:

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

如何获取类名?在这种情况下,我需要将 c-545599b92f2d2b5a09f21c06d490e810 分配给一个变量。

谢谢

【问题讨论】:

  • 好吧伙计,我对你的问题有点困惑,你想要输出什么?

标签: java jsoup


【解决方案1】:

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

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

输出将是:

表单控制 c-545599b92f2d2b5a09f21c06d490e810

编辑:

只获取第二部分,你可以简单地使用String.split(regex)方法就可以了。

例如

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

输出:

c-545599b92f2d2b5a09f21c06d490e810

【讨论】:

  • 谢谢,这正是我所需要的。但是,我只需要第二个班级名称,我该怎么做?所以在那种情况下,c-545599b92f2d2b5a09f21c06d490e810。谢谢!
  • @Michael 你不能在字符串上使用split 吗?
  • 是的,这就是我刚刚所做的.split("\\s+")[1]谢谢!
【解决方案2】:

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

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

请注意,在您解析的 HTML 中,类名的顺序可能不同。这就是该方法返回集合而不是有序数据结构的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-14
    • 2017-02-26
    • 2012-03-09
    • 2011-10-13
    • 1970-01-01
    相关资源
    最近更新 更多