[Neapolis] ha scritto:
ettore56 ha scritto:
Ti consiglio di creare una tabella, che così potrai sempre aggiornare i dati senza intervenire sul codice, nella quale posizionerai in una colonna tutti i caratteri speciali ed in un'altra colonna tutti i corrispondenti caratteri validi.
Concordo con Ettore,
così facendo, ogni qualvolta devi generare un xml, potrai far riferimento sempre alla stessa tabella per le conversioni.
/// nota: char è un po' generico, tipicamente diventano WideChar. Dipende dalla versione del compilatore (>=D2009)
const
arrayconversione:array [161..255] of Char= ('¡','¢','£','¤','¥','¦','§','¨','©','ª','«','¬','','®','¯','°','±','²','³','´','ì','¶','·','¸','¹','º','»','¼','½','¾','¿','À','Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','×','Ø','Ù','Ú','Û','Ü','Ý','Þ','ß','à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô','õ','ö','÷','ø','ù','ú','û','ü','ý','þ','ÿ');
function g_purgaxml(i_stringa:string):string;
var
i:Integer;
begin
Result:=i_stringa;
if i_stringa='' then Exit;
for i:=Low(arrayconversione) to High(arrayconversione) do
Result:=StringReplace(result,arrayconversione[i],'&#'+inttostr(i)+';',[rfreplaceall]);
Result:=StringReplace(result,'<','<',[rfreplaceall]);
Result:=StringReplace(result,'&','&',[rfreplaceall]);
Result:=StringReplace(result,'"','"',[rfreplaceall]);
Result:=StringReplace(result,'''',''',[rfreplaceall]);
Result:=StringReplace(result,#10,' ',[rfreplaceall]);
Result:=StringReplace(result,#13,' ',[rfreplaceall]);
end;