我正在尝试使用jsoup来解析html文件。它是使用表格来显示产品。每个产品都在一个表中,其id范围从1到“n”。像下面的例子一样:
<table align="center" width="98%" id="A + 1">
<tbody>
<tr>
<td valign="top" style="width: 03%;">
<span class="line">1</span>
</td>
<td valign="top" style="width: 56%;">
<span class="line">PRODNAME</span>
</td>
<td valign="top" style="width: 10%;">
<span class="line">850.000</span>
</td>
</tr>
</tbody>
</table>
因此,第一个产品将在ID为“A + 1”的桌面上,第二个产品在“A + 2”中,依此类推。
我无法使用selector迭代这些表。我在做:
Document doc = Jsoup.parse(html);
Elements products = doc.select("table[idˆ=A]");
for (Element product : products) {
// do something
}
如果我读得正确(http://jsoup.org/apidocs/org/jsoup/select/Selector.html),doc.select("table[idˆ=A]")
应该检索id属性以“A”开头的所有表...
但我的Elements对象(产品)是空的......我做错了什么?
我在Mac OS X(10.7.4)上使用jsoup 1.6.3,java 1.6.0_31和Netbeans 7.1.2。
任何帮助表示感谢。
答案 0 :(得分:3)
你似乎在你的选择器中使用了错误的抑扬符号,虽然我不确定jsoup是否应该返回一个空的结果集或者在无效的选择器上抛出异常。
无论如何,试试这个:
Document doc = Jsoup.parse(html);
Elements products = doc.select("table[id^=A]");
for (Element product : products) {
// do something
}