jsoup解析tr,td用class和id for循环

时间:2012-06-09 08:46:20

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

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

有什么想法吗?

3 个答案:

答案 0 :(得分: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);
    }

答案 1 :(得分: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 :(得分:0)

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

我发现了两个问题:

  • 如果你没有

    ,你的html示例会导致emptieness

    &LT;表&gt; examplehtmlcode&lt; /表&gt;

  • 您在报价中使用结果之前有结果;我移动了“String result = sectd.text();”在内循环之前。

    import java.io.File; import java.io.IOException; import org.jsoup。*; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import 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

这对你有帮助吗?