2013-12-19 2 views
0

클래스 HTMLEditorKit.ParserCallback을 확장하여 태그, 주석 및 html 파일의 해당 줄 번호를 가져 왔습니다.스크립트 태그와 LineNumberReader를 포함한 Java HTML 파서

FileReader inputStreamReader = new FileReader(modelFile); 
lineNumberReader = new LineNumberReader(inputStreamReader); 
delegator.parse(lineNumberReader, this, true); 

은 정상적으로 작동하지만 HTML 문서는 스크립트 태그가 포함되어있는 경우, handleError()는 오류 메시지 javascript.unsupported ? ? ? 호출됩니다. 지금까지는 스크립트 태그의 내용을 주석으로 처리했지만 줄 번호 판독기는 줄 번호 </html>을 반환합니다. </script> 대신.

올바른 줄 번호를 얻는 방법은 무엇입니까?

예 문서 :

<html> 
    <head> 
    </head> 
    <body> 
     <script language="javascript"> 
      int a; 
      function abc() { 
      } 
     </script> 
    </body> 
</html> 

감사합니다, 마이클

답변

0

는 LineNumberReader에서 자신의 ScriptPatchingReader 클래스를 파생.

그 클래스에서는 <script을 조심하고 줄 번호가있는 스크립트 본문을 저장하여 </script>까지만 줄 바꿈을하십시오. 나중에 스크립트로 수행하십시오. <head> 부분인지 또는 <body> 부분인지 여부를 저장할 수 있습니다.

BTW FileReader는 현재 플랫폼 인코딩을 사용합니다. UTF-8과 같은 고정 인코딩을 사용하는 경우 :

InputStreamReader inputStreamReader = new InputStreamReader(
    new FileInputStream(modelFile), "UTF-8");