我一直在使用Jsoup来解析我的HTML文件,到目前为止它做得很好。但是,它无法解析任何服务器标记(<%...%>)。我决定扩展它,但我找不到一个简单的方法来扩展它的Parser和所有那些私有/包级别的类(即TreeBuilder,TransitionState ......等)......
所以我开始关注Jericho,因为它声称它可以解析服务器标签 - 但是,它的文档很差,我甚至无法轻易上手。并且看起来它的API不像Jsoup提供的那样友好 - 它不是那么直接提取一些节点并移动它...
我想知道是否有人之前有类似的情况以及如何解决它?简而言之,我只想用Java解析JSP文件。 (好吧..请不要让我自己实施一个; p)
答案 0 :(得分:1)
最后我得到一个解决方法:将服务器代码块放在HTML注释块中,以便1)服务器代码可以正确执行; 2)Jsoup可以将整个块作为HTML注释节点处理,而不会触及任何内部。
e.g。
<!--
<%@ 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
现在对我来说效果很好!希望获得同样问题的人可以得到一些帮助! ;)