Java 面临获取数据的问题

Java 面临获取数据的问题,java,jsoup,Java,Jsoup,我有一个html页面,我试图从中获取数据(文本)。面对下面的问题 下面是html页面代码 数据一的标题 一个数据 双线 三线 a b c 数据二的标题 asd sdffsdfsdf asd dfgdfg asd dfgdfgd qweqwe fghgfhgf gdfgdfgd 新的p标签 忽视 有一个主课堂和两个子课堂。我能从主课堂上得到所有的课文。但需要将第一个子类的数据存储在一个字符串中,将第二个子类的数据存储在另一个字符串中。需要忽略最后一个p标记和表标记 条件是某个时间可能并

我有一个html页面,我试图从中获取数据(文本)。面对下面的问题

下面是html页面代码


数据一的标题

一个数据

双线

三线

  • a
  • b
  • c
数据二的标题

asd sdffsdfsdf

asd dfgdfg

asd dfgdfgd

  • qweqwe
  • fghgfhgf
  • gdfgdfgd
新的p标签

忽视
有一个主课堂和两个子课堂。我能从主课堂上得到所有的课文。但需要将第一个子类的数据存储在一个字符串中,将第二个子类的数据存储在另一个字符串中。需要忽略最后一个p标记和表标记

条件是某个时间可能并没有第一个子类,所以来自第二个子类的数据必须包含在第二个字符串中,并且第一个字符串应该为null

我尝试了以下代码

Elements data = doc.getElementsByClass("sub-class");
    System.out.println(data);
    String allData= data .text();
我从小班上拿到了所有的课文

我面临以下问题 1.无法将第一个子类数据存储在字符串one=? 2.无法将第二个子类数据存储在字符串2=? 3.无法获取标签文本数据。 4.无法忽略最后一个标签和标签

Elements=document.getElementsByClass(“主类”);
Elements subClassData1=document.select(“div.sub-class:eq(0)”;
if(elements.hasText()){
返回元素.text().toString();
}
else if(子类数据1!=null){
返回子类data1.text().toString();
}
}
预期结果是

子类一数据=“数据一标题:一数据二行三行a b c

子类二数据=“数据二的标题:asd sdffsdfsdf asd dfgdfg asd fgdfgd
qweqwe FGHGFHG gdfgdfgd

不太确定您是否正在寻找此代码,但下面的代码解决了所有3个问题,根据您的条件根据需要进行调整,方法如下:

基本上,对于2个子类元素,您有2个元素,并且它们可以被迭代。 另外,对于第二个子类元素,可以删除最后两个子元素

    Document jsoupDocument = Jsoup.parse(in, "UTF-8");
    Elements allSubClassElements = jsoupDocument.getElementsByClass("sub-class");
    System.out.println("Num of sub-classes found "+allSubClassElements.size());
    System.out.printf("First Subclass %s", allSubClassElements.get(0).text());
    System.out.println();
    Element secondSubClassElement = allSubClassElements.get(1);

    //want to remove last 2 elements
    for (int i = secondSubClassElement.children().size(), j = 0; j < 2; i--, j++) {
        //element would be updated here.
        secondSubClassElement.child(i - 1).remove();
    }
    System.out.printf("Second Subclass %s", secondSubClassElement.text());
documentjsoupdocument=Jsoup.parse(在“UTF-8”中);
Elements allsubasselements=jsoupDocument.getElementsByClass(“子类”);
System.out.println(“找到的子类数”+所有子类元素.size());
System.out.printf(“第一个子类%s”,allsubasselements.get(0.text());
System.out.println();
Element secondsubasselement=allsubasselement.get(1);
//要删除最后2个元素吗
对于(int i=secondsubasselement.children().size(),j=0;j<2;i--,j++){
//元素将在此处更新。
secondsubasselement.child(i-1).remove();
}
System.out.printf(“第二个子类%s”,第二个子类元素.text());