我正在抓取一个网页的正文,其中有一个包含很多行的表格,如下所示:
...
...
<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 :(得分: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();
}
}
答案 1 :(得分:1)
由于它采用XML格式,您应该使用Java XML API,例如DOM或SAX。或者您可以使用第三方XML库(如JDOM和DOM4J)进行处理。
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>