首页 > 代码库 > 替换xml中某些特定的elements

替换xml中某些特定的elements

替换xml中某些node, 如<name>zhangsan</name>想替换成<name>lisi</name>:

 

package strip;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.Properties;public class StripXMLElements {    public static void main(String[] args) {        String oldfilename = args[0];        String newfilename = args[1];        String propertyfile = args[2];        Properties prop = new Properties();        try {            FileInputStream fis = new FileInputStream(propertyfile);            prop.load(fis);            String elements = prop.getProperty("STRIP_ELEMENTS");            if ((elements != null) && (!elements.equals(""))) {                stripElements(oldfilename, elements, newfilename);            }        } catch (Exception e) {            e.printStackTrace();        }    }    public static void stripElements(String oldFile, String stripElements,            String newFile) throws IOException {        String start = null;        String end = null;        int startIndex;        int endIndex;        String line = null;        BufferedReader br = null;        FileReader fr = null;        FileWriter fw = null;        BufferedWriter bw = null;        String[] strs = stripElements.split(";");        File file = new File(oldFile);        try {            fr = new FileReader(file);            br = new BufferedReader(fr);        } catch (FileNotFoundException e1) {            e1.printStackTrace();        }        if (!file.exists()) {            try {                throw new FileNotFoundException();            } catch (FileNotFoundException e) {                e.printStackTrace();            }        } else {            fw = new FileWriter(newFile, true);            bw = new BufferedWriter(fw);            while ((line = br.readLine()) != null) {                for (String str : strs) {                    start = "<" + str + ">";                    end = "</" + str + ">";                    if (line.contains(start) && line.contains(end)) {                        startIndex = line.indexOf(start) + start.length();                        endIndex = line.indexOf(end);                        line = line                                .replace(line.substring(startIndex, endIndex),                                        "STRIPED");                        bw.write(line);                        bw.newLine();                        bw.flush();                        line = br.readLine();                        for (String s : strs) {                            String starts = "<" + s + ">";                            String ends = "</" + s + ">";                            if (line.contains(starts) && line.contains(ends)) {                                int startIndexs = line.indexOf(starts)                                        + start.length();                                int endIndexs = line.indexOf(ends);                                line = line.replace(                                        line.substring(startIndexs, endIndexs),                                        "STRIPED");                            }                        }                        break;                    }                }                bw.write(line);                bw.newLine();                bw.flush();            }        }        bw.flush();        bw.close();        br.close();        fw.close();        fr.close();    }}


没有使用dom4j,JDOM等,使用的是流编辑。

替换xml中某些特定的elements