てきたHTML:JSOUPは、nextSiblingの後にhtmlを解析する方法は?
私は、コードの変更を解析Text0-3値を得ることができます<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td width="27%" align="left" valign="top">
<span class="param">Text0</span> 23<br />
<span class="param">Text1</span> 173<br />
<span class="param">Text2</span> 54<br />
<span class="param">Text3</span> 2<br /><br />
</td>
<td width="27%" align="left" valign="top">
<span class="param">Text4</span><br />
one <br />
two <br />
three <br />
</td>
<td width="46%" align="left" valign="top">
<span class="param">Text5</span><br />
one -<br />
two -<br />
three -<br />
</td>
</tr>
</table>
取得(0)-get(3)が、カントは取得Text4とText5:
値Text4を取得する方法Document doc = Jsoup.connect("text.html").get();
Element param = doc.select("span[class=param]").get(0);
Node node = param.nextSibling();
System.out.println(node.toString());
とText5? (4)取得または(5)、今BRを返しますが、私は "1、2、3"
今、私はこのコードを使用します必要があります。
Document doc = Jsoup.connect("text.hml").get();
Elements params = doc.select("span[class=param]");
int i;
for (i=0; i<6; i++) {
Element param = params.get(i);
Node node = param.nextSibling();
System.out.println(node.toString());
}
このプリントを:
23
173
54
2
<br>
<br>
私が必要:
23
173
54
2
one two three
one two three
クレイジーコードの答え:
Document doc = Jsoup.connect("text.html").get();
Elements params = doc.select("span[class=param]");
int i;
for (i=0; i<3; i++) {
Element param = params.get(i);
Node node = param.nextSibling();
System.out.println(node.toString());
}
for (i=4; i<5; i++){
Element apar = params.get(i);
Node apan = apar.nextSibling();
System.out.println("apar: "+apan.nextSibling().toString());
System.out.println("apar: "+apan.nextSibling().nextSibling().nextSibling().toString());
System.out.println("apar: "+apan.nextSibling().nextSibling().nextSibling().nextSibling().nextSibling().toString());
//System.out.println(apan.nextSibling().toString());
}
for (i=5; i<6; i++){
Element vih = params.get(i);
Node vihn = vih.nextSibling();
System.out.println("vih: "+vihn.nextSibling().toString());
System.out.println("vih: "+vihn.nextSibling().nextSibling().nextSibling().toString());
System.out.println("vih: "+vihn.nextSibling().nextSibling().nextSibling().nextSibling().nextSibling().toString());
//System.out.println(apan.nextSibling().toString());
}
}
このクレイジー(?)コードは、私が欲しいものを印刷します。
'node.toString()'は何を印刷しますか? – pczeus
設定されている場合:get(0)、print 23. get(5)を設定した場合、
を印刷します。しかし私は "1 2 3"が必要です – yar1k
あなたは質問を更新したので、それは意味がありません。あなたは当初、要素内のデータを取得しようとしていました。しかし、今ではスパン要素とは関係ないランダムデータを取得しようとしていますが、実際のデータは要素内です。多分、あなたが達成しようとしていることだけを記述することができます。 – pczeus