1

我是 jsoup 的新手,并试图解析这个 html
如何用 jsoup 解析它?

  <tr id="bir" >
    <td class ="number"> dsadds </td >
<td class ="name"> dsdad </td >
<td class ="idea"> dvewe </td ></tr>
  <tr id="bir" >
    <td class ="number"> ewe</td >
<td class ="name"> ewe</td >
<td class =idea> dsasdsds </td ></tr>
  <tr id="bir" >
    <td class ="number"> dsadd dsds </td >
<td class ="name"> dsdcdsd adds </td >
<td class ="idea"> dsad dsdsds </td ></tr>

这是我的代码

 Elements kelime = document.select("tr#bir td.number");
    Elements anlam = document.select("tr#bir td.name");
    for(Element sectd:kelime){
         for(Element sectd1:anlam){


               result1 = sectd1.text();
               Custom temp = new Custom("Big" + result,"Small" +result1);

                 fetch.add(temp);


           }result = sectd.text();
    }

我正在将数据添加到列表中,因为我需要在临时文件中显示 tr 的所有 td 信息。它实际上是我认为的循环问题:%但我没有得到它:/。

任何想法?

4

3 回答 3

2

您可以通过 #getElementsByClass(X); 解析类名 X 的元素;

Document doc = Jsoup.connect(yourURL).userAgent("Mozilla").get();
Elements els = doc.getElementsByClass("number");

for (Element el : els) {
    print(el.text());
}
...
于 2012-06-09T08:50:45.753 回答
2

谢谢你们的关注我在这里解决了我的代码的问题..

 Elements kelime = document.select("tr#bir");
    for(Element sectd:kelime){
        Elements tds = sectd.select("td"); 

               result = tds.get(0).text();
               result1 = tds.get(1).text();
               result2 = tds.get(2).text();


               Custom temp = new Custom("Kelime  :" + result,"En erken Türkçe örnek   :" + result1,"Köken   :"+result2);

                 fetch.add(temp);
    }
于 2012-06-10T18:17:25.320 回答
0

我只能猜测你的问题是什么。

我发现了两个问题:

  • 如果您没有,您的 html 示例会导致空虚

    <table> examplehtmlcode</table>

  • 您在报价中使用结果,然后它才具有价值;我移动了“字符串结果 = sectd.text();” 在内部 for 循环之前。

    导入java.io.File;导入 java.io.IOException;导入 org.jsoup.*;导入 org.jsoup.nodes.Document;导入 org.jsoup.nodes.Element;导入 org.jsoup.select.Elements;公共类 CopyOfparser {

    public static void main(String[] args){
    
    
    String filepath =   "C:/Users/RH/Desktop/test/1234.html";
    
    File input = new File(filepath);
    
    
    Document document=null;
    try {
        document = Jsoup.parse(input, "ISO-8859-1");
    } catch (IOException e) {
        e.printStackTrace();
    }
    

    //这里开始你的代码:

    Elements kelime = document.select("tr#bir td.number");
    Elements anlam = document.select("tr#bir td.name");
    for(Element sectd:kelime){
         String result = sectd.text();
    
              for(Element sectd1:anlam){
    
    
              String result1 = sectd1.text();
              System.out.println("Big" + result +" Small" +result1);
    
    
           }
    
    }
    

我得到了这个输出:

Bigdsadds Smalldsdad
Bigdsadds Smallewe
Bigdsadds Smalldsdcdsd adds
Bigewe Smalldsdad
Bigewe Smallewe
Bigewe Smalldsdcdsd adds
Bigdsadd dsds Smalldsdad
Bigdsadd dsds Smallewe
Bigdsadd dsds Smalldsdcdsd adds

这对你有帮助吗?

于 2012-06-10T01:14:51.697 回答