2012-02-09 39 views
0

私は以下のように複数のdivタグを持つメインDivタグを持っています。子Divタグには、他の子divタグと区別するクラス/ IDはありません。今度は、2番目の子Divタグからテキスト値を抽出します。どうやってやるの?Divタグからテキストを取得する

<div class="logFor" style="position: relative; height: 101px; padding: 5px;"> 
    <div style="color: #6b6b6b; font-weight: bold;">This is a monster</div> 
    <div style="overflow: hidden; height: 28px; margin-top: 3px; color: #1b1f2e;">Monster in Black</div> 
    <div style="position: absolute; left: 5px; bottom: 0;"> 
    <div style="position: absolute; right: 5px; bottom: 0;"> 
</div> 

「Monster in Black」というテキストを取得したいと考えています。この部門はid/nameを持たず、このスタイルが同じか変更されるかどうかはわかりません。 jSoupを使ってどのように抽出するのですか?あなたは次のコードであることを達成することができます

答えて

1
package stackoverflow; 

import java.io.IOException; 
import java.io.InputStream; 

import org.apache.commons.io.IOUtils; 
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[] args) throws IOException { 
     InputStream in = JSoupTest.class.getResourceAsStream("JSoupTest.txt"); 

     String html = IOUtils.toString(in); 

     Document doc = Jsoup.parse(html); 

     Elements divs = doc.select("DIV"); 
     System.out.println(divs); 

     Element div = divs.get(2); 
     System.out.println("Monster in Black".equals(div.text())); 
    } 
} 

の詳細については、このjavadocをチェックアウトが生成されます

<div class="logFor" style="position: relative; height: 101px; padding: 5px;"> 
<div style="color: #6b6b6b; font-weight: bold;"> 
    This is a monster 
</div> 
<div style="overflow: hidden; height: 28px; margin-top: 3px; color: #1b1f2e;"> 
    Monster in Black 
</div> 
<div style="position: absolute; left: 5px; bottom: 0;"> 
    <div style="position: absolute; right: 5px; bottom: 0;"> 
    </div> 
</div> 
</div> 
<div style="color: #6b6b6b; font-weight: bold;"> 
This is a monster 
</div> 
<div style="overflow: hidden; height: 28px; margin-top: 3px; color: #1b1f2e;"> 
Monster in Black 
</div> 
<div style="position: absolute; left: 5px; bottom: 0;"> 
<div style="position: absolute; right: 5px; bottom: 0;"> 
</div> 
</div> 
<div style="position: absolute; right: 5px; bottom: 0;"> 
</div> 
true 
0

使用jqueryの

<html> 
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript" ></script> 
<script> 
$(document).ready(function() { 
    alert($(".logFor div:nth-child(3)").html()); 
}); 
</script> 
<body> 
<div class="logFor" style="position: relative; height: 101px; padding: 5px;"> 
    <div style="color: #6b6b6b; font-weight: bold;">This is a monster</div> 
    <div style="overflow: hidden; height: 28px; margin-top: 3px; color: #1b1f2e;">Monster in Black</div> 
    <div style="position: absolute; left: 5px; bottom: 0;">HainKurt</div> 
    <div style="position: absolute; right: 5px; bottom: 0;">Just joined to SO!</div> 
</div> 
</body> 
</html> 
+0

@hainKurt ...フロントエンドでこれをやっていません。私はここでjavascriptを使用することはできません。私はこれをJavaクラスファイルで行い、jsoupパーサを使用しています。 – JNPW

3

Document doc = Jsoup.parse(new File("test.html"), "utf-8"); 
Elements select = doc.select("div > div:eq(1)"); 
System.out.println(select.text()); 

またセレクタ

関連する問題