加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 19:23:51 所属栏目:Java 来源:网络整理
导读:我正在使用Jsoup来解析网页.但是有些我希望解析的信息是在CDATA标记内部,这会阻止解析器提取内部数据.我如何从CDATA标签中提取数据? 例: script type='text/javascript'!--// ![CDATA[ OA_show('300x250');// ]] --/script script type='text/javascript'a
我正在使用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标签中获取该值?

谢谢!

解决方法

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');

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读