2017-11-06 7 views
1

行の多いテーブルがある場合、私はこのように、ウェブページの本文を取得しています:JavaのWebページの特定の部分を解析するには?

... 
... 
<tbody> 
    <tr class="odd"> 
    <td align="center">08:00</td> 
    <td align="center">9.50</td> 
    <td>Description of event 1 </td> 
    <td align="center">7.80</td> 
    </tr> 
    <tr class="even"> 
    <td align="center">09:00</td> 
    <td align="center">11.10</td> 
    <td>Description of event 2</td> 
    <td align="center">27.40</td> 
    </tr> 
... 

私は、この表からパーツをカットし、私のオブジェクトにそれを解析したいと思います。部分文字列を使用しようとしていましたが、テキストのどこに必要な部分があるのか​​分かりません。また、私は正規表現と異なるパーサを探していました。私の問題をどうやって決めることができますか?ありがとう

+0

あなたは何を試してみましたか?また、 "cut string"と言うと、['String#split']を意味します(https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java .lang.String))? –

+4

htmlパーサーを使用する必要があります。 https://jsoup.org/ – code11

答えて

6

jsoupを使用して、あなたのhtmlをDocumentに解析し、Jsoup DOM methodsを使用してhtmlを移動することができます。

String yourHtml = "<someHtml/>"; 
Document doc = Jsoup.parseBodyFragment(yourHtml); 

Element table = doc.getElementByTag("tbody"); 
Elements rows = table.getElementsByTag("tr"); 
for (Element row : rows) { 
    for (Element cell : row.getElementsByTag("td")) { 
     String content = cell.text(); 
    } 
} 
+0

あなたの行を取得しているときに 'content'変数はどこに定義されていますか?これは 'テーブル'でしょうか? – byxor

+0

@byxor whoops、thats whats起こって何が起こったのstackoverflowページisntead本当のIDEの –

1

XML形式であるため、DOMやSAXなどのJava XML APIを使用する必要があります。あるいは、JDOMやDOM4JなどのサードパーティのXMLライブラリを使用して処理することもできます。

File file = new File(Appl.class.getClassLoader().getResource("testing.xml").getFile()); 
Document document = DocumentFactory.createDocument(file); 
Element element = document.getElementById("tag22"); 
System.out.println(element.getTextContent()); 

testing.xml

<?xml version='1.0' encoding='UTF-8'?> 
<tag1 id="tag1"> 
    <tag2 id="tag22">Testing Content</tag2> 
</tag1> 
関連する問題