5

我正在使用 Jsoup 解析网页。但是有些如果我要解析的信息位于 CDATA 标记内,该标记会阻止解析器提取其中的数据。我将如何从 CDATA 标记中提取数据?例子:

<script type='text/javascript'><!--// <![CDATA[
    OA_show('300x250');
// ]]> --></script>
         <script type='text/javascript'>alert("Hello");</script>

如果我使用 Jsoup 解析此页面并尝试使用“script [type = text/javascript]”选择页面中的所有匹配元素,我将返回页面中没有 CDATA 标记但没有警报的其他脚本的内容(“你好”); 价值。我将如何使用 Jsoup 在 CDATA 标记中获取该值?

谢谢!

4

1 回答 1

3
String page = "<script type='text/javascript'><!--// <![CDATA[\n" +
        "    OA_show('300x250');\n" +
        "// ]]> --></script>\n" +
        "         <script type='text/javascript'>alert(\"Hello\");</script>";

String html = Jsoup.parse(page).select("script").get(0).html();
html = html.replace("<!--// <![CDATA[", "");
html = html.replace("// ]]> -->", "");

System.out.println(html);

结果

OA_show('300x250');
于 2014-01-08T21:56:01.227 回答