2015-01-16 3 views
0

다음 코드를 사용하여 java를 사용하여 HTML 페이지를 편집하려고합니다.HTML 행을 편집/삽입하는 방법

package com.XXX.xxx.xxx 

import java.io.BufferedReader; 
import java.io.FileReader; 
import java.io.IOException; 

public class HTMLReading { 

    /** 
    * @param args 
    */ 
    public static void main(String[] args) { 

     StringBuilder contentBuilder = new StringBuilder(); 
     try { 
      BufferedReader in = new BufferedReader(new FileReader("C:\\ItemDetails.html")); 
      String str; 
      while ((str = in.readLine()) != null) { 

       if(str.equals("<div id=\"row2\" style=\"display:none;\" ><ul>")) { 
        // add following lines to html 
        //<li><b>Comments</b></li><ul><li>Testing for comment</li></ul> 
       } 
       System.out.println(str); 
      } 
      in.close(); 
     } catch (IOException e) { 
     } 


    } 
} 

perticular 행을 읽는 중에 html에 새로운 행을 삽입하고 싶습니다.

나는 애플릿을 시도했지만, 내가 원하는 곳이 아닌 끝에 줄을 추가합니다.

내 요구 사항은이 경우에만 JAVA 만 사용해야합니다.

모든 의견!

+0

여기 봐 주시기 바랍니다 : 코드가 같을 수 있음을 달성하기 http://stackoverflow.com/questions/19730996/edit-html-document-with-java 당신은 더 나을 수 있습니다 – ferjani

답변

0

Java.io.BufferedWriter.newLine() 메소드를 사용할 수 있습니다.
그것은, 당신은 여기에 몇 가지 documantation 비 정적 방법을 찾을 수있다 :

StringBuffer sb = new StringBuffer(); 
sb.append ("<br>blabla<br>"); 
0

당신은 시도 할 수 있습니다 : 그것은 같은 불변의 객체이기 때문에 당신은 더 나은, StringBuffer를뿐 아니라 문자열을 사용
또한 http://www.tutorialspoint.com/java/io/bufferedwriter_newline.htm

을,

 String str; 
     StringBuilder contentBuilder = new StringBuilder(); 
     while ((str = in.readLine()) != null) { 

      if(str.equals("<div id=\"row2\" style=\"display:none;\" ><ul>")) { 

       contentBuilder.append("add your content" + str); 
      } 
      else 
      { 
       contentBuilder.append(str); 
      } 
      System.out.println(str); 
     } 

문자열에 저장하고 combined 번째로 쓸 수 있습니다. e 파일을 보냈습니다.

+0

StringBuilder는 일반 String이 아닌'combined'을 사용합니다. – Rob

+0

@ brso05이 수정 내용이 적용됩니다. 하지만 내 html 파일은 매우 (5000-10000 라인 이상 포함) 거대합니다. 이 픽스를 통해 모든 것을 HTML로 다시 작성하고 있습니다. performace 히 칠 수 있습니다. – MIM

+0

@MIM 큰 파일 인 경우 StringBuilder를 사용해야합니다. – brso05

0

개행 문자는 Java에서 "\ n"으로 표시됩니다. StringBuilder에 원본 파일의 내용과 설명하는 추가 행이 포함되어있는 것처럼 보입니다.

public static void main(String[] args) { 

    StringBuilder contentBuilder = new StringBuilder(); 
    try (BufferedReader in = new BufferedReader(new FileReader("C:\\ItemDetails.html"))) { 
     String str; 
     while ((str = in.readLine()) != null) { 
      contentBuilder.append(str); 
      if (str.equals("<div id=\"row2\" style=\"display:none;\" ><ul>")) { 
       contentBuilder.append("\n<li><b>Comments</b></li><ul><li>Testing for comment</li></ul>\n); 
      } 
     } 
    } catch (IOException e) { 
    } 
    System.out.println(contentBuilder.toString()); 
} 
+0

StringBuilder에서 원래 파일의 내용과 추가 라인을 갖고 싶지 않다. 파일 자체에 추가 행을 직접 작성할 수있는 방법이 있습니까? – MIM

+0

성취하려는 행동에 대한 세부 정보를 추가하려면 질문을 업데이트해야합니다. 검색 문자열의 각 인스턴스에 대해 주어진 줄 중 하나를 사용하여 기존 파일을 덮어 쓰겠다는 말입니까? 그렇다면 왜 append()가 문자열의 끝에 물건을 추가한다고 불평하는지 이해하지 못한다. – Shannon

관련 문제