Einzelnen Beitrag anzeigen

win568

Registriert seit: 8. Sep 2008
121 Beiträge
 
#6

AW: XMLDOMDocument formatiert abspeichern

  Alt 7. Jun 2010, 07:41
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.
  Mit Zitat antworten Zitat