JAVA 的 JSP 和 HTML 解析器

Kar*_*eng 5 java parsing jsp jsoup jericho-html-parser

我一直在使用 Jsoup 来解析我的 HTML 文件,到目前为止它做得很好。但是,它无法解析任何服务器标签( <% ... %> )。我决定扩展它,但我找不到一种简单的方法来扩展它的解析器和所有那些私有/包级别的类(即 TreeBuilder、TransitionState ...等)...

所以我开始研究Jericho,因为它声称它可以解析服务器标签 - 然而,它的文档太差了,我什至无法轻松入门。而且它的 API 似乎不像 Jsoup 提供的那么友好 - 提取一些节点并移动它并不是那么简单......

想问问大家以前有没有遇到过类似的情况,是怎么解决的?简而言之,我只想用Java解析JSP文件。(好吧..请不要让我自己实现一个;p)

Kar*_*eng 1

最后我得到了一个解决方法:将服务器代码块放在 HTML 注释块中,以便 1)服务器代码可以正确执行;2)Jsoup可以将整个块作为HTML注释节点处理,而无需触及其中的任何内容。

例如

<!--
<%@ page language="java" errorPage="/error.jsp" pageEncoding="UTF-8" contentType="text/html;charset=UTF-8" %>
<%@ page import="com.systemcrossed.groupbuystart.webapp.display.DisplayHelper" %>
<%@ page import="com.systemcrossed.groupbuystart.webapp.util.JsonUtil" %>
<%@ page import="org.apache.commons.lang.StringEscapeUtils" %>
<%@ include file="/_sys/pages/public/incl/jspCommon.jsp" %>
-->
<!--<%
    // Java code here
%>-->
<html>
<head>
    ... html stuff
Run Code Online (Sandbox Code Playgroud)

现在对我来说效果很好!希望遇到同样问题的朋友能够得到帮助!;)