2015-12-04 41 views
1

我解析与Jsoup得到的类名

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

例的元素输出为:

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

我怎样才能获取类的名字呢?在这种情况下,我需要将c-545599b92f2d2b5a09f21c06d490e810分配给一个变量。

感谢

+0

好的伙伴,我对你问的问题有点混淆,你想要输出什么? – nafas

回答

1

如果您确定元素大小为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); 

OUTPUT:

C-545599b92f2d2b5a09f21c06d490e810

+0

谢谢,它几乎是我所需要的。然而,我只需要第二个班级名称,我该怎么做?所以在这种情况下,c-545599b92f2d2b5a09f21c06d490e810。谢谢! – Michael

+0

@迈克尔不能在字符串上使用'split'? – nafas

+0

是的,那就是我刚刚做的''.split(“\\ s +”)[1]''谢谢! – Michael

0

你可以得到与JSoup method classNames元素的所有课程。这是你将如何使用它:

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

注意,类名可能无法在您解析HTML相同的顺序来的。这就是为什么该方法返回一个集合而不是有序的数据结构。