Einzelnen Beitrag anzeigen

toyoman

Registriert seit: 2. Jun 2003
323 Beiträge
 
Delphi 2010 Enterprise
 
#1

Problem mit xpparser.pas Unit

  Alt 18. Feb 2009, 08:45
hallo jungens

ich muss ein altes projekt in delphi 2007 zum laufen bringen.
in diesem projekt wird eine xpparser.pas verwendet. so wie es ausschaut hat das Ding was mit XML am hut. da ich mich damit nicht auskenne und beim kompilieren immer folgende fehlermeldung erhalte wollte ich fragen ob sich jemand damit auskennt und ev. eine beschreibung oder ähnliches hat warum das ding unter delphi 2007 nicht mehr funzt:

Erste Gelegenheit für Exception bei $7C812A5B. Exception-Klasse EXpParserError mit Meldung 'Invalid XML name: ' ''. Prozess Reports.exe (4844)
Der Fehler tritt anscheinend in folgender Funktion auf:

Delphi-Quellcode:
function TXpParser.ReadNameToken(aValFirst : Boolean) : DOMString;
var
  TempChar : DOMChar; {!!.52}
  First : Boolean;
  ResultLen : Integer; {!!.52}
  CurrLen : Integer; {!!.52}
begin
  if TryRead(Xpc_ParamEntity) then begin {!!.52 - Start}
    ParseParameterEntityRef(True, False);
    SkipWhiteSpace(True);
  end; {!!.52 - End}
  First := aValFirst;
  Result := '';
  CurrLen := 0; {!!.52 - Start}
  ResultLen := 20;
  SetLength(Result, ResultLen); {!!.52 - End}
  while True do begin
    TempChar := ReadChar(False);
    if (TempChar = '%') or (TempChar = '<') or (TempChar = '>') or
       (TempChar = '&') or (TempChar = ',') or (TempChar = '|') or
       (TempChar = '*') or (TempChar = '+') or (TempChar = '?') or
       (TempChar = ')') or (TempChar = '=') or (TempChar = #39) or
       (TempChar = '"') or (TempChar = '[') or (TempChar = ' ') or
       (TempChar = #9) or (TempChar = #$0A) or (TempChar = #$0D) or
       (TempChar = ';') or (TempChar = '/') or (TempChar = '') or {!!.51}{!!.52}
       (TempChar = #1) then {!!.52}
      Break
    else
      if XpValidNameChar(First, TempChar) then begin {!!.52 - Start}
        if (CurrLen + 2 > ResultLen) then begin
          ResultLen := ResultLen * 2;
          SetLength(Result, ResultLen);
        end;
        SkipChar;
        Inc(CurrLen);
        Result[CurrLen] := TempChar;
      end else {!!.52 - End}
        raise EXpParserError.CreateError(FFilter.Line,
                                         FFilter.LinePos,
                                         FFilter.URL,
                                         sInvalidName +
                                         QuotedStr(TempChar));
    First := False;
  end;
  SetLength(Result, CurrLen); {!!.52}
end;
  Mit Zitat antworten Zitat