2012-10-30 5 views
3

나는 내 HTML 파일을 파싱하기 위해 Jsoup를 사용 해왔고 지금까지는 훌륭한 작업을 수행하고 있습니다. 그러나 어떤 서버 태그 (< % ... %>)도 구문 분석 할 수 없습니다. 나는 그것을 확장하기로 결정하지만, 나는 그것의 Parser 및 모든 개인/패키지 레벨 클래스 (즉 TreeBuilder, TransitionState ... 등)을 확장 할 수있는 쉬운 방법을 찾을 수 없습니다 ... 자바 용 JSP 및 HTML 파서

그래서 나는 주장으로 Jericho보고 시작 서버 태그를 파싱 할 수는 있지만 문서가 너무 가볍기 때문에 쉽게 시작할 수 없습니다. API가 Jsoup가 제공하는 것만큼이나 친숙하지 않은 것처럼 보입니다. 노드를 추출하여 주위로 이동하는 것은 간단하지 않습니다 ...

누구나 비슷한 상황에 처해 있으며 해결 방법은 궁금합니다. 즉, Java에서 JSP 파일을 구문 분석하려고합니다. (글쎄 .. 제발 나 혼자서 하나만 구현해달라고 부탁하지 마세요.

+0

jsp 태그와 스크립틀릿 또는 구문 분석 된 HTML에 대한 액세스 만 필요합니까? 실제 jsp 파서의 경우 html 코드는 해석없이 전달되는 텍스트 일뿐입니다. –

+0

실제로 원하는 것은 1) JSP 파일 읽기, 2) HTML 내용 수정, 3) 새로운 JSP 파일에 쓰기 (JSP 스크립틀릿과 태그는 보존되어야 함)입니다. 그러나 Jsoup는 그렇게 할 수 없습니다 .. –

답변

1

마지막으로 해결 방법이 있습니다. 서버 코드 블록을 HTML 주석 블록에 넣어 서버 코드가 올바르게 실행될 수 있도록합니다. 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 

지금은 잘 작동합니다. 같은 문제가있는 희망 ppl이 도움을 얻을 수 있습니다! ;)