Gibt es dagegen bedenken oder etwas das noch schneller ist?
Vermute durch das Setzen der Capacity im Constructor kann man noch viel rausholen, der Rest ist eher just for fun:
Delphi-Quellcode:
function SanitizeXML(const AValue: String): String;
var
i, Len: Integer;
LChr: Char;
LStrBldr: TStringBuilder;
begin
Len := Length(AValue);
LStrBldr := TStringBuilder.Create(Len);
try
for i := 1 to Len do
begin
LChr := AValue[i];
case LChr of
#9, #10, #13, #32..#$D7FF, #$E000..#$FFFD:
LStrBldr.Append(LChr);
end;
end;
Result := LStrBldr.ToString;
finally
LStrBldr.Free;
end;
end;