-2

ファイル内の最後の文字列、つまり VirtualHost を削除する必要があります。Java、シェルを使用して実行できます。ファイル構造はxmlファイルです。私が必要としているのは、VirtualHost を最後までシフトする必要があるということです。だから私はそれを削除してから追加しようとしています。

 Current Text:
    </VirtualHost>
    #Added for Patch 
    <LocationMatch ^/bea_wls_internal/>
    RewriteOptions inherit
    </LocationMatch>







Desired Text:
#Added for Patch
<LocationMatch ^/bea_wls_internal/>
RewriteOptions inherit
</LocationMatch>
</VirtualHost> 

私はこれをやろうとしました:

    int c=1,i=1;
    int loc[]=new int[10];
    //String str="</VirtualHost>";
    BufferedReader br= new BufferedReader (new FileReader ());
    String line=br.readLine();
    FileWriter fw=new FileWriter(file_location);
    PrintWriter pw=new PrintWriter(fw);
    List<String> lines = new ArrayList<String>();

    while ((line != null)){
            //System.out.println(line);
            lines.add(line);
            c++;
            line=br.readLine();
    }
    br.close();
    int size=lines.size();
    System.out.println("size "+size);

    while(c>i){
        int filesize=lines.size();
        System.out.println(filesize);

        String str=lines.get(filesize-i);
        System.out.println(str);
        lines.remove(filesize-i);
        if (!lines.equals("</VirtualHost>")){
            System.out.println("inside if");
            lines.add(str);
            //break;
        }
        else if(lines.equals("</VirtualHost>")){
            break;
        }
        i++;
    }
    for (String writeLine : lines)
            pw.println(writeLine);


    pw.append("</VirtualHost>");
    pw.flush();
    pw.close();
    fw.close();
    System.out.println(c);
}

}

4

2 に答える 2

0

Java オブジェクトを提供できる XML パーサーを使用します。次に、ルートから目的の要素までトラバースすると、すべての操作を実行できます

于 2013-09-25T13:53:38.053 に答える
0

Java の使用にこだわる理由はありますか?

sed でこれを行うことができます。

sed '/</VirtualHost>/,$d' filename

これにより、ファイルの内容全体から</VirtualHost>.

次に</VirtualHost>#Added for Patchテキストに を含めます。

于 2013-09-25T13:34:59.773 に答える