var
   FXmlPhoto: TXMLDocument;
begin   
    FXmlPhoto := TXMLDocument.Create(nil);
    FXmlPhoto.Active := False;
    FXmlPhoto.FileName := Value;
    FXmlPhoto.Active := True;    RootNode := FXmlPhoto.ChildNodes.Nodes['Root'];
    StyleNode := RootNode.ChildNodes.Nodes['Style']; 
    //...
end;在“RootNode:=...”上报“Access Vidlation at address XXXXXXXX in module '****.exe'.Read of address XXXXXXXX Process stopped”
请大家帮我看看!谢谢!

解决方案 »

  1.   

    没有使用ActiveX的CoInit类函数初始化凡是基于COM的控件,动态创建都需要CoInitxxxx的处理去Google找,或看看以前的贴http://lysoft.7u7.net
      

  2.   

    要改成
    FXmlPhoto := TXMLDocument.Create(Application);
    FXmlPhoto.Active := True;
    FXmlPhoto.LoadFromFile(文件名);
    ……
    FXmlPhoto.Free;
      

  3.   

    FXmlPhoto := TXMLDocument.Create(Self);//这是秘籍,真的哦,一定要用Self
      

  4.   

    procedure TForm1.Button3Click(Sender: TObject);
    var
       FXmlPhoto: TXMLDocument;
    begin
      FXmlPhoto := TXMLDocument.Create(Self);
      FXmlPhoto.LoadFromFile('aa.xml');
      showmessage(FXmlPhoto.DocumentElement.NodeName);
    end;
    这样可以的.
    在创建了FXmlPhoto后,应该导入XML文件,然后才能正确使用,导入后就不用再把Active设成True,导入XML后会自动打开.
      

  5.   

    var
       FXmlPhoto: IXMLDocument;//这儿用IXMLDocument,而不是TXMLDocument
    begin   
        FXmlPhoto := TXMLDocument.Create(nil);//这儿参数就用NIL....
        FXmlPhoto.Active := False;
    .... 
        //...
    end;
    嘿嘿,,这也是秘籍...
      

  6.   

    function TMyMusicForm.getUrl(title: WideString): WideString;
    var
        root,node:IXMLNode;
        xmlList:IXMLNodeList;
        i:Integer;
    begin
          getUrl:='';
          InXml.LoadFromFile(StrFilePath+'\Data\Data.xml');
          root:=InXml.DocumentElement;     //得到xml的根结点Nodes嘿嘿这个控件我拖进去的
          node:=root.ChildNodes.First;    //得到根结点的第一个子结点(第一个Node)
          while(node<>nil) do
          begin
              xmlList:=node.ChildNodes;
              for i:=0 to xmlList.Count-1 do
                begin
                    if(xmlList.Nodes[i].Text=title)then
                        begin
                          getUrl:=xmlList.Nodes[i].Attributes['Url'];
                          exit;
                        end;            end;          node:=node.NextSibling;
          end;
    end;
      

  7.   

    一定要有FORM,没FORM是不得的,XMLDOCUMENT是FORM依赖的