2017-01-04 5 views
0
<td style="padding-left: 5px; padding-right: 5px; padding-top: 1px; padding-bottom: 1px; border: none;"> 
    <strong>test:</strong> 62 
    </td> 

    <td style="padding-left: 5px; padding-right: 5px; padding-top: 1px; padding-bottom: 1px; border: none;"> 
    <a style="color: inherit;" href="redacted"> 
     <strong>test:</strong> 51 
    </a> 
    </td> 

    <td style="padding-left: 5px; padding-right: 5px; padding-top: 1px; padding-bottom: 1px; border: none;"> 
    <a style="color: inherit;" href="redacted"> 
     <strongtest:</strong> 11 
    </a> 
    </td> 

それぞれの強いタグの後に番号をつけたいと思います。私はdoc.select( "強い〜*")をすることができると思ったが、それは私にnullを与えている。強いタグの後ろの数字をつかみます

私も試しました 要素= document.select( "強い")。first(); //これは強いタグの後の最初の要素であってはならないか、その間にあるはずですか?

終了タグの後に選択する答えは何ですか。

答えて

1

あなたが探している数字は、strongタグの間にはありません。それらはtdタグの内側か、またはtdタグの内側にあるaタグの内側にあります。数字を取得するには、tdタグを選択し、tdに独自のテキストがあるかどうかを確認します。そうであればあなたの番号です。そうでなければ、タグであるtdの最初の子を取得し、独自のテキストを取得します。例:

import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 
import org.jsoup.nodes.Element; 
import org.jsoup.select.Elements; 

public class JsoupTest { 
    public static void main(String argv[]){ 
     String html = "<table>"+ 
        " <td style=\"padding-left: 5px; padding-right: 5px; padding-top: 1px; padding-bottom: 1px; border: none;\">" + 
        " <strong>test:</strong> 62" + 
        " </td>" + 
        " <td style=\"padding-left: 5px; padding-right: 5px; padding-top: 1px; padding-bottom: 1px; border: none;\">" + 
        " <a style=\"color: inherit;\" href=\"redacted\">" + 
        "  <strong>test:</strong> 51" + 
        " </a>" + 
        " </td>" + 
        " <td style=\"padding-left: 5px; padding-right: 5px; padding-top: 1px; padding-bottom: 1px; border: none;\">" + 
        " <a style=\"color: inherit;\" href=\"redacted\">" + 
        "  <strong>test:</strong> 11" + 
        " </a>" + 
        " </td>"; 
     Document doc = Jsoup.parse(html); 
     Elements tds = doc.select("td"); 
     for(Element e : tds){ 
      if (!e.ownText().isEmpty()){ 
       System.out.println(e.ownText()); 
      } 
      else{ 
       System.out.println(e.child(0).ownText()); 
      } 
     }   
    } 
} 
+0

ワウ私はそれを本当に見落としました。ありがとうございました。私はJsoupがどのようにノードを持つテキストを扱うかを知っていましたが、何らかの理由でtdがテキストを取得するときに私は強く使い続けました。 – Ben

関連する問題