4

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

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

我想知道以前是否有人遇到过类似的情况以及如何解决?简而言之,我只想用Java解析JSP文件。(嗯..请不要让我自己实现一个;p)

4

1 回答 1

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

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

于 2012-11-06T00:15:46.200 回答