【问题标题】:Jsoup parse issue for paring script tag (with c tag) in Jsp file用于在 Jsp 文件中解析脚本标签(带有 c 标签)的 Jsoup 解析问题
【发布时间】:2019-10-01 15:16:14
【问题描述】:

我有一个 JSP 文件,我需要从该文件中获取脚本标签的 src 属性中的 js 文件详细信息。这适用于普通的纯脚本标签(如下所示)

<script src="/resources/js/jquery.min.js" ></script>

我正在使用带有 UTF-8 字符集的 Jsoup 库解析方法将 jsp 文件解析为 html 文件

Document htmlDocument = Jsoup.parse(file, "UTF-8");

从文档(HTML 文档)中获取所有带有 src 属性的脚本标签的集合,在 foreach 循环中从集合中获取 src 属性详细信息。

实际脚本标签:

<script src="<c:url value="/resources/js/jquery.min.js" />"></script>

Jsoup 1.8.1 lib 解析输出:

<script src="<c:url value=" esources="" s="" query.min.js"=""></script>"&gt; 

Jsoup 1.12.1 lib 解析输出:

<script src="<c:url value=" resources js jquery.min.js"></script>

预期输出:

"/resources/js/jquery.min.js"

实际输出:

"<c:url value="

谁能解释一下这个问题?

【问题讨论】:

    标签: javascript jsp jsoup script-tag


    【解决方案1】:

    似乎 JSoup 解析器不喜欢内引号。我不会说这是一个 JSoup 问题,因为您的解析不符合 HTML 标准。换句话说,我认为 JSoup 正在按设计工作(对于 SO 上的代码格式也可以这样说)。

    我不确定 JSP 是否可以正常工作,但是当我尝试将内部双引号换成单引号时:

    <script src="<c:url value'/resources/js/jquery.min.js' />"></script>
    

    解析似乎按预期工作

    <c:url value'/resources/js/jquery.min.js' />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-18
      • 2013-11-14
      • 2012-10-01
      • 1970-01-01
      • 2016-05-06
      • 2016-06-10
      • 1970-01-01
      相关资源
      最近更新 更多