导入xml文件后,访问xml结构的数据时出现问题
  xdoc:=TXMLDocument.Create(nil);
  xdoc.LoadFromFile('1.xml');
  snode:=xdoc.DocumentElement;  //执行到这里的时候,跳出错误如下:Access violation at address 00465B99 in module 'Project1.exe'.小弟实在是无能为力了,高手们帮忙啊!

解决方案 »

  1.   

    xdoc:=TXMLDocument.Create(nil);
    改为
    xdoc:=IXMLDocument.Create(nil);
      

  2.   

    不好意思,刚才写错了
    应该是这样
    xdoc := TXmlDocument.Create(Form1);
    xdoc.LoadFromFile('d:\test.xml');
    xdoc.Active := True;
    showmessage(xdoc.DocumentElement.NodeName);
      

  3.   

    use
       activex, xmldom,  XMLIntf, msxmldom, XMLDoc,comobj;function test():boolean;
    begin 
       XMLDocument.Active := true;
        XMLDocument.LoadFromXML(strEntityData);
        xmlNode := XmlDocument.DocumentElement;
    end'这样我从来没错过!
      

  4.   

    TXmlDocument,需要一个容器,动态创建的时候需要指明。
      

  5.   

    应该是少了这句的原因
    XMLDocument.Active := true;
      

  6.   

    对了,create方法参数也不能为nil
      

  7.   

    和你的XML文件有关系,如果我没有估计错误,你加下这样的行来调试一下:
    if xdoc.DocumentElement = nil then
      showMessage('Node is null!');
      

  8.   

    var
      xdoc: IXMLDocument;//注意,这儿不是TXMLDocument..........
      xdoc:=TXMLDocument.Create(nil);//当参数为nil时,xdoc一定要用接口类型变量.
      xdoc.LoadFromFile('1.xml');