Converting Special Chars in XML

Hi All,

I have written a program which converts all special characters in a invalid XML file.

Problem is :- I want to convert special characters for tag values which makes XML invalid, but it converts whole XML file.. which again makes it invalid for me .. please find the code below

publicclass ConvertXML{

staticchar[] invalid =newchar[]{'\"','&','\'','<','>'};

static String[] validReplacement =new String[]{""", "&", "'", "<", ">"};

static String output;

publicstaticvoid main(String arg[]){// ConvertXML()

try{

BufferedReader in =new BufferedReader(new FileReader("demo.xml"));

BufferedWriter out =new BufferedWriter(new FileWriter("outfilename.xml"));

String str;

while ((str = in.readLine()) !=null){

output =replace(invalid,validReplacement,str);

out.write(output);

System.out.println("output" + output);

}

out.close();

in.close();

}catch (IOException e){

System.out.println("File not exisit");

}catch(Exception e){System.out.println("File Cannot be read");}

}

publicstaticfinal String replace(char[] invalid,String[] validReplacement, String value){

if (value ==null){

returnnull;

}

char[] chars = value.toCharArray();

StringBuffer result =null;

int lastVisited = 0;

for (int i = 0; i < chars.length; i++){

int invalidIndex = Arrays.binarySearch(invalid, chars[i]);

if (invalidIndex < 0){

continue;

}

if (result ==null){

result =new StringBuffer();

}

result.append(chars, lastVisited, i - lastVisited);

result.append(validReplacement[invalidIndex]);

lastVisited = i + 1;

}

if (result ==null){

return value;

}

result.append(chars, lastVisited, chars.length - lastVisited);

return result.toString();

}

}

Please let me know where I am going wrong

Thanks.

[4639 byte] By [JavaNewUsera] at [2007-11-27 1:58:13]
# 1
Got the answer
JavaNewUsera at 2007-7-12 1:34:39 > top of Java-index,Enterprise & Remote Computing,Enterprise Technologies...