android用jsoup解析html

时间:2013-10-12 21:21:37

标签: android html jsoup

我有一个像这样的String html:

> [CDATA[<div><b>index1:</b> <div
> class="ExternalClass4C236C53DAF34307B4580A8DA27FA373"><p>​</p>
> <div>value1</div> <div></div> <div>value2</div>
> <div></div> <div>value3 </div> <div></div> <div>value4
> </div> <div></div> <div>value5</div> </div></div>
> <div><b>index2:</b> value6</div> <div><b>index3:</b> value8</div>
> <div><b>index4:</b> valu7</div> <div><b>index5:</b>value10</div>

我正在使用jsoup。

Document doc = Jsoup.parse(description);

元素el = doc.get .......

我如何获得价值字符串?

1 个答案:

答案 0 :(得分:0)

我不知道一个简单的解决方案。您可以选择div元素的内容。但是你会以这种方式获得一些指数值。

一个硬编码的解决方案是这样的:

public void testParseValue() {
    String html ="[CDATA[<div><b>index1:</b> <div" +
        "> class=\"ExternalClass4C236C53DAF34307B4580A8DA27FA373\"><p>​</p>" +
        "> <div>value1</div> <div></div> <div>value2</div>" +
        "> <div></div> <div>value3 </div> <div></div> <div>value4" +
        "> </div> <div></div> <div>value5</div> </div></div>" +
        "> <div><b>index2:</b> value6</div> <div><b>index3:</b> value8</div>" +
        "> <div><b>index4:</b> valu7</div> <div><b>index5:</b>value10</div>";

    Document doc = Jsoup.parse(html);

    Elements divs= doc.select("div");

    System.out.println(divs.get(2).text());
    System.out.println(divs.get(4).text());
    System.out.println(divs.get(6).text());
    System.out.println(divs.get(8).text());
    System.out.println(divs.get(10).text());
    System.out.println(divs.get(11).text().substring("index2: ".length()));
    System.out.println(divs.get(12).text().substring("index3: ".length()));
    System.out.println(divs.get(13).text().substring("index4: ".length()));
    System.out.println(divs.get(14).text().substring("index5:".length()));
}

它是用Java编写的,因此您可能希望将System.ou.println调用更改为日志调用。 您也可以使用“:”字符的位置而不是整个indexX:strings。