Registriert seit: 19. Jun 2006
647 Beiträge
Delphi 11 Alexandria
|
AW: HTML-Encoding in XML
1. Mär 2021, 14:43
Bei XML Dateien ist der Default UTF-8. Dateien ohne Encodingangaben werden als UTF-8 gelesen. Da musst du dich auch dran halten und die Daten als UTF-8 ins XML schreiben. Gleichzeitig auch noch den Text in den Nodes XML encoden.
Delphi-Quellcode:
function XMLEncode( const AStr: String): String;
const
Convert = [' &',' <',' >',' "',' '' '];
var
Sp, Rp: PChar;
begin
SetLength(Result, Length(AStr) * 10);
Sp := PChar(AStr);
Rp := PChar(Result);
while Sp^ <> #0 do
begin
case Sp^ of
' &': begin
FormatBuf(Rp {$IFNDEF UNICODE}^ {$ENDIF}, 5, ' &', 5, []);
Inc(Rp,4);
end;
' <',
' >': begin
if Sp^ = ' <' then
FormatBuf(Rp {$IFNDEF UNICODE}^ {$ENDIF}, 4, ' <', 4, [])
else
FormatBuf(Rp {$IFNDEF UNICODE}^ {$ENDIF}, 4, ' >', 4, []);
Inc(Rp,3);
end;
' "': begin
FormatBuf(Rp {$IFNDEF UNICODE}^ {$ENDIF}, 6, ' "', 6, []);
Inc(Rp,5);
end;
' '' ': begin
FormatBuf(Rp {$IFNDEF UNICODE}^ {$ENDIF}, 6, ' '', 6, []);
Inc(Rp,5);
end;
else
Rp^ := Sp^
end;
Inc(Rp);
Inc(Sp);
end;
SetLength(Result, Rp - PChar(Result));
end;
Geändert von Rolf Frei ( 1. Mär 2021 um 16:59 Uhr)
|
|
Zitat
|