如何解析提取的HTML内容

时间:2016-02-23 13:45:36

标签: jsoup

从网站我获得以下内容使用Jsoup Call。

<body>
 <div align="center" class="main">
  <div id="box1">
   <div id="heading" align="center">
    SENSEX
   </div>
   <div id="feeds" align="center">
    23,410.18
   </div>
   <div id="feeds_se" align="center">
    <img src="arrow_red.png" alt="" width="12" height="13" /> -378.61
   </div>
  </div>
  <div id="box2"></div>
 </div>
 <div align="center" class="main">
  <div id="box1">
   <div id="heading" align="center">
    USD/INR
   </div>
   <div id="feeds" align="center">
    68.50
   </div>
   <div id="feeds_se" align="center">
    <img src="arrow_red.png" alt="" width="12" height="13" /> -0.05
   </div>
  </div>
  <div id="box2"></div>
 </div>
 <div align="center" class="main">
  <div id="box1">
   <div id="heading" align="center">
    Crude($/BBL)
   </div>
   <div id="feeds" align="center">
    34.69
   </div>
   <div id="feeds_se" align="center">
    <img src="arrow_green.png" alt="" width="12" height="13" /> 1.68
   </div>
  </div>
  <div id="box2"></div>
 </div>

</body>

请您告诉我如何阅读这些值

我如何检索值

SENSEX   23,410.18  -378.61
USD/INR   68.50    -0.05
Crude($/BBL)  34.69   1.68

2 个答案:

答案 0 :(得分:1)

试试这段代码:

    Document doc = Jsoup.parse(yourHtmlString);
    Elements elements = doc.select("div.main");
    for (Element element : elements) {
        System.out.println(element.getElementById("heading").text() + " "
        + element.getElementById("feeds").text()+ " "
        + element.getElementById("feeds_se").text());       
    }

输出:

SENSEX 23,410.18 -378.61
USD/INR 68.50 -0.05
Crude($/BBL) 34.69 1.68

答案 1 :(得分:0)

要获取HTML页面中的信息,您可以使用CSS selectors。在您的示例中,您可以执行此操作:

Elements els = doc.select("#heading");
for (Element el : els){
    System.out.println(el.text());
}

请注意,您的html确实无效,因为它包含非唯一ID。这不应该发生在HTML中,但幸运的是Jsoup并不关心这一点。