原先我是在Form上直接放的控件,使用很正常。
可是当我在程序中动态创建TXMLDocument时,其的DocumentElement不能使用。报Access violation。
相关代码如下:
  
  XMLDoc: TXMLDocument;
  Root : IXMLNode;
  sName:String;
  newName:String;
begin
  try
    XmlDoc:= TXMLDocument.Create(nil);
    try
      try
        XmlDoc.LoadFromXML(AText);
      except
        result:=0;
        Exit;
      end;      Root:= XMLDoc.DocumentElement;  //这一句出错!
       
       ......
       ......     
    finally
      XmlDoc.Free;
    end;
  except
    result:=-1;
  end;请教各位大虾了。万分感谢!

解决方案 »

  1.   


    .....
    begin
      try
        XmlDoc:= TXMLDocument.Create(nil);
        try
          try
            XmlDoc.LoadFromXML(AText);
    //加上下面这两句.
            XMLDoc.Active:=false;  
            XMLDoc.Active:=true;      except
            result:=0;
            Exit;
          end;
    ......
    看一看VCL相应源码..LoadFromXML在执行完之后,本身会把ACTIVE标志置为TRUE..
    但好象处理得不够完美,需要再去 关一下再开.