【问题标题】:jsoup parsing tr,td with class and id for loopjsoup 用类和 id 解析 tr,td for loop
【发布时间】:2012-06-13 03:34:20
【问题描述】:

我是 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 信息。我认为它实际上是循环问题:%但我没有得到它:/。

有什么想法吗?

【问题讨论】:

    标签: android parsing for-loop html-parsing jsoup


    【解决方案1】:

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

    Document doc = Jsoup.connect(yourURL).userAgent("Mozilla").get();
    Elements els = doc.getElementsByClass("number");
    
    for (Element el : els) {
        print(el.text());
    }
    ...
    

    【讨论】:

      【解决方案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);
          }
      

      【讨论】:

        【解决方案3】:

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

        我发现了两个问题:

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

          examplehtmlcode
        • 您在报价中使用结果之前它具有价值;我移动了“字符串结果 = 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
        

        这对你有帮助吗?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-06-30
          • 2019-03-29
          • 1970-01-01
          • 2016-04-20
          • 1970-01-01
          • 2016-01-12
          • 1970-01-01
          • 2020-11-08
          相关资源
          最近更新 更多