Hello:
I have a xml file that is 'polluted' with invalid characters - ascii characters which are not allowed in xml.
To remove these characters, I do this:
<snip>
procedure TForm1.Button1Click(Sender: TObject);
begin
AssignFile(InFile, 'test.xml');
AssignFile(OutFile, 'NewTest.xml');
Reset(Infile);
Rewrite(OutFile);
while not EOF(InFile) do
begin
readln(InFile, LineRead);
// list of invalid characters
LineRead := StringReplace(LineRead, #0, '', [rfReplaceAll, rfIgnoreCase]);
LineRead := StringReplace(LineRead, #1, '', [rfReplaceAll, rfIgnoreCase]);
LineRead := StringReplace(LineRead, #2, '', [rfReplaceAll, rfIgnoreCase]);
LineRead := StringReplace(LineRead, #3, '', [rfReplaceAll, rfIgnoreCase]);
LineRead := StringReplace(LineRead, #4, '', [rfReplaceAll, rfIgnoreCase]);
LineRead := StringReplace(LineRead, #5, '', [rfReplaceAll, rfIgnoreCase]);
LineRead := StringReplace(LineRead, #6, '', [rfReplaceAll, rfIgnoreCase]);
LineRead := StringReplace(LineRead, #7, '', [rfReplaceAll, rfIgnoreCase]);
LineRead := StringReplace(LineRead, #8, '', [rfReplaceAll, rfIgnoreCase]);
LineRead := StringReplace(LineRead, #11, '', [rfReplaceAll, rfIgnoreCase]);
LineRead := StringReplace(LineRead, #12, '', [rfReplaceAll, rfIgnoreCase]);
LineRead := StringReplace(LineRead, #14, '', [rfReplaceAll, rfIgnoreCase]);
LineRead := StringReplace(LineRead, #15, '', [rfReplaceAll, rfIgnoreCase]);
LineRead := StringReplace(LineRead, #16, '', [rfReplaceAll, rfIgnoreCase]);
LineRead := StringReplace(LineRead, #17, '', [rfReplaceAll, rfIgnoreCase]);
LineRead := StringReplace(LineRead, #18, '', [rfReplaceAll, rfIgnoreCase]);
LineRead := StringReplace(LineRead, #19, '', [rfReplaceAll, rfIgnoreCase]);
LineRead := StringReplace(LineRead, #20, '', [rfReplaceAll, rfIgnoreCase]);
LineRead := StringReplace(LineRead, #21, '', [rfReplaceAll, rfIgnoreCase]);
LineRead := StringReplace(LineRead, #22, '', [rfReplaceAll, rfIgnoreCase]);
LineRead := StringReplace(LineRead, #23, '', [rfReplaceAll, rfIgnoreCase]);
LineRead := StringReplace(LineRead, #24, '', [rfReplaceAll, rfIgnoreCase]);
LineRead := StringReplace(LineRead, #25, '', [rfReplaceAll, rfIgnoreCase]);
LineRead := StringReplace(LineRead, #26, '', [rfReplaceAll, rfIgnoreCase]);
LineRead := StringReplace(LineRead, #27, '', [rfReplaceAll, rfIgnoreCase]);
LineRead := StringReplace(LineRead, #28, '', [rfReplaceAll, rfIgnoreCase]);
LineRead := StringReplace(LineRead, #29, '', [rfReplaceAll, rfIgnoreCase]);
LineRead := StringReplace(LineRead, #30, '', [rfReplaceAll, rfIgnoreCase]);
LineRead := StringReplace(LineRead, #223, '', [rfReplaceAll, rfIgnoreCase]);
writeln(OutFile, LineRead);
end;
closefile(InFile);
CloseFile(OutFile);
Edit1.Text := 'Done!';
end;
<snip>
The problem is that if new, different character slips in, the program will not handle it because it will not be in my "List of invalid characters"
Does anyone know of a way to get rid of all possible invalid charaters?
Thanks,