Einzelnen Beitrag anzeigen

Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#1

XMl-File Parsen: xmlDoc.load(sDateiname) schlägt fehl

  Alt 9. Dez 2004, 09:35
Code:
function TForm1.parseXMLFile(sDateiname: OleVariant): Boolean;
var
  xmlDoc: IXMLDOMDocument2;
  node: IXMLDOMNode;
  nodes: IXMLDOMNodeList;
  i: Integer;
  sOleFilename: OleVariant;
begin
  Result := FALSE;
  case XML_VERSION of
    26: xmlDoc := CoDOMDocument26.Create;
    30: xmlDoc := CoDOMDocument30.Create;
    40: xmlDoc := CoDOMDocument40.Create;
  end;

  //xmlDoc.setProperty('NewParser', true);  //--> ab 4.0 Version!
  xmlDoc.validateOnParse   := False;
  xmlDoc.resolveExternals  := False;
  xmlDoc.async             := False;
  xmlDoc.preserveWhiteSpace := False;

  // prüfen ob XML-File vorhanden:
  if not xmlDoc.load(sDateiname) then
  begin
    MessageDlg('XML-Datei nicht vorhanden!', mtWarning, [mbOK], 0);
    exit;
  end;

  // prüfen ob XML-File "wohlgeformt" ist:
  If xmlDoc.parseerror.errorCode <> 0 then
  begin
    MessageDlg( 'XML-Datei ' + sDateiname +
                ' ist nicht wohlgeformt --> Abbruch',
                mtWarning, [mbOK], 0);
    Exit;
  end;

  try
    // Auflistung einer NodeListim Memo3: --------------------------------------
    nodes := xmlDoc.documentElement.selectNodes('//Bewerbung[0]/*');
    node := xmlDoc.selectSingleNode('//Bewerbung[0]/*');

    for i:=0 to nodes.length-1 do
    begin
      if (node <> nil) then
      begin
        node := nodes.nextNode;
        Memo3.Lines.Add(node.Get_nodeName + #9 + node.Get_text);
      end;
    end;
    Memo3.Lines.Add('----------------------------------------');
    Result := TRUE;
  except
    ;
  end;
end;

sDateiname ist auf jeden Fall vorhanden (C:\test.xml)


Aufruf der Funktion erfolgt mit:
Code:
aFTPClient.LocalFileName := IncludeTrailingBackslash(sTempPath) + FileNameList[i];
dabei ist sTempPath = 'C:\'
den Dateinamen lese ich aus einer Datei aus die ich von einem FTP-Server (Ordnerauflistung aller Dateien) geladen habe


-------------
ergänzt: eine überprüfung ob die datei existiert mit fileExists ist "TRUE"
  Mit Zitat antworten Zitat