Hi
Nach langem Rumspielen habe ich nun die Lösung. Das Problem war das Laden des
XML Dokumentes selbst. Ich habe es mit der TFileStream und TStringStream Klasse gemacht. Diese verwendet jedoch implizit kein WideString, wodurch die Umlaute nicht mehr korrekt an das XMLDOM übergeben wurden. Nach der Änderung:
Code:
lFileStream := TFileStream.Create(AFileName, fmOpenRead or fmShareDenyWrite);
try
if Assigned(FOnBeginParse) then begin
FOnBeginParse(self);
end;
try
FLastParseErrorPos := Point(0, 0);
FLastParseErrorCode := 0;
GetXMLDoc.PreserveWhiteSpace := True;
Result := GetXMLDoc.Load(TStreamAdapter.Create(lFileStream, soReference) as IStream);
if not Result then begin
FLastParseErrorPos := Point(GetXMLDoc.parseError.linepos - 1, GetXMLDoc.parseError.line - 2);
FLastParseErrorCode := GetXMLDoc.parseError.ErrorCode;
lStr := Format('Parse Error: %s (Line: %d, Pos: %d)', [Trim(GetXMLDoc.parseError.Reason),
GetXMLDoc.parseError.Line-1,
GetXMLDoc.parseError.LinePos-1]);
if Assigned(FOnParseError) then begin
FOnParseError(self, lStr, GetXMLDoc.parseError.Line-1, GetXMLDoc.parseError.LinePos-1);
end;
end;
finally
if Assigned(FOnEndParse) then begin
FOnEndParse(self);
end;
end;
finally
FreeAndNil(lFileStream);
end;
wurden die Umlaute korrekt angezeigt und auch beim Speichern gabe es keine Probleme mehr.
Die Stylesheet Transformation werde ich heute ausprobieren. JEdoch vielen Dank für die Antworten.