[Delphi XE2] XMLDocument

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by ADR-007, 6 Apr 2012.

  1. ADR-007

    ADR-007 Member

    Joined:
    12 Jul 2010
    Messages:
    218
    Likes Received:
    9
    Reputations:
    0
    Code:
    var
        FXMLDocument: TXMLDocument;
    //...
      CoInitialize(nil);
      FXMLDocument := TXMLDocument.Create(ParseThread.Account.PatternFileName);
      FXMLDocument.Active := True;
    //...
    var
      NodeList: IXMLNodeList;
      DocNode: IXMLDocument;
    begin
      DocNode := IXMLDocument(FXMLDocument);// иначе "Invalid pointer operation"
    //DocNode.DocumentElement.ChildNodes.Count = 1 !!!
      NodeList := DocNode.DocumentElement.ChildNodes[0].ChildNodes;
    //Error: "Expression illegal in evaluator"
    почему так?
     
  2. mironich

    mironich Elder - Старейшина

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Короч проблему детальнее надо описывать, расписать чтоб мозг помогающих не летал в астрале в поисках модели ситуации.
    А что зн. иначе?
    Ты туда nil пихал?
     
  3. ADR-007

    ADR-007 Member

    Joined:
    12 Jul 2010
    Messages:
    218
    Likes Received:
    9
    Reputations:
    0
    иначе это так:
    NodeList := FXMLDocument.DocumentElement.ChildNodes[0].ChildNodes;


    проблема в том что выдаёт ошибку при
    DocNode.DocumentElement.ChildNodes[0].ChildNodes
    хотя
    DocNode.DocumentElement.ChildNodes.Count = 1
    (т. е. список не пуст)

    точно также при
    DocNode.ChildNodes[0].ChildNodes
     
  4. ADR-007

    ADR-007 Member

    Joined:
    12 Jul 2010
    Messages:
    218
    Likes Received:
    9
    Reputations:
    0
    проблема решилась сама собой (видимо какой-то глюк)
     
  5. ADR-007

    ADR-007 Member

    Joined:
    12 Jul 2010
    Messages:
    218
    Likes Received:
    9
    Reputations:
    0
    тепер ошибка на
    Code:
      FXMLDocument.Free;
    на
    Code:
      TObject(FXMLDocument).Free;
    также... Invalid Poiter Operation...
     
  6. ADR-007

    ADR-007 Member

    Joined:
    12 Jul 2010
    Messages:
    218
    Likes Received:
    9
    Reputations:
    0
    нашол обшыбку...
    у меня же уничтожается последняя копия интерфейса при выходе из процедуры и соотвествено уничтожается объект)