Jsoup获取具有CDATA标签的javascript内容?

时间:2012-11-02 18:06:50

标签: java javascript jsoup cdata

我正在使用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标签中获取该值?

谢谢!

1 个答案:

答案 0 :(得分: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');