[英]Parsing a specific text value with JSoup
您示例中的節點稱為文本節點。 在 Jsoup 中,您可以使用text()
方法讀取節點的文本節點。 因此,鑒於您使用 Jsoup 的示例,我們將 select td
元素,然后使用text()
獲取它的文本值。
但是,這也將 output 來自任何子節點的文本值,因此在您的情況下,這將產生Weather: Light rain
作為單個字符串。 幸運的是,Jsoup 還有一個ownText()
方法,它只從作為元素的直接后代(而不是所有子元素)的文本節點中提取值。 因此,鑒於您的示例代碼,您可以這樣編寫:
Element element5 = doc.select("td").get(3);
String value = element5.ownText()
您可以使用多種方法來提取所需的文本,其中之一是td.childNode(1).toString()
,下面提到了完整的解決方案:
public static void main(String[] args) {
// Parse HTML String using JSoup library
String HTMLSTring = "<html>\n" +
" <head></head>\n" +
" <body>\n" +
" <table class=\"table\"> \n" +
" <tbody>\n" +
" <tr> \n" +
" <td><strong>Weather: </strong>Light Rain</td> \n" +
" </tr> \n" +
" <tr> \n" +
" <td><strong>Tempratue: </strong>70 C</td> \n" +
" </tr> \n" +
" <tr> \n" +
" <td><strong>Visibility: </strong>Limited</td> \n" +
" </tr> \n" +
" <tr> \n" +
" <td><strong>Runs open: </strong>0</td> \n" +
" </tr>\n" +
" </tbody>\n" +
" </table>\n" +
" </body>\n" +
"</html>"
+ "<head></head>";
Document html = Jsoup.parse(HTMLSTring);
Elements tds = html.getElementsByTag("td");
for (Element td : tds) {
//String tdStrongText = td.childNode(0).childNodes().get(0).toString();
String tdStrongText = td.select("strong").text();
System.out.print(tdStrongText + " : ");
String tdText = td.childNode(1).toString();
System.out.println(tdText);
}
}
查看github上的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.