procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('http://211.77.125.7:8080/rece.aspx?user=rote&pwd=123');
end;
//想从一网页,该网页的内容是XML文件,我要获取XML,来利用XMLDocument来解决,问题出在那里?procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
  var //   stringstream:Tstringstream;
           str:string;
           xDoc: IXMLDocument;
begin
  str:=webbrowser1.OleObject.document.documentelement.innerText ;
 // StringStream := TStringStream.Create(str);
  xDoc := LoadXMLData(str);//到这里老报错“‘XML声明无效’,但我把他考下来,当用XX.XML文件,可以用
  xDoc.Active:=true;
  root:=xDoc.DocumentElement;
  Parent_Node := Root.ChildNodes.First高手,给个东东。或修改下。。

解决方案 »

  1.   

    楼主,你的xx.xml内容是从str里取到的?
     str:=webbrowser1.OleObject.document.documentelement.innerText ;连不上你那网址,无法知道你返回的XML文档是什么样的.
    但如果服务器端返回XML文档与返回HTML页面,它们MIME类型不一样,WEBBROWSER处理方式不一样.
    也就是说,
    webbrowser1.OleObject.document.documentelement.innerText
    或者
    webbrowser1.OleObject.document.documentelement.outerText
    这样只是取到的HTML页面..如果象CSDN论坛这样返回的XML,可以类似
    webbrowser1.OleObject.document.xmldocument这样取到IMSXMLDOMDocument之类的对象
      

  2.   

    哇哈哈,搞定,这样楼主:
    FXMLDocu:TXMLDocument;self.FXMLDocu.FileName := 'http://211.77.125.7:8080/rece.aspx?user=rote&pwd=123';
    self.FXMLDocu.Active := true;不用那个WebBrowser了,你试试看。
      

  3.   

    你的 IXMLDocument 的Active属性置为 True 了吗 ?如果时False就会报错。
      

  4.   

    不好意思,好些天没进论坛了..
    楼主试试下面的代码:uses msxml;
    {$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
      url: string;
    begin
      url := 'http://community.csdn.net/Expert/topic/5267/5267971.xml?temp=.1310999';
      WebBrowser1.Navigate(url);
    end;
    procedure TForm1.Button2Click(Sender: TObject);
    var
      v : variant;
      aintf : IXMLDOMDocument;
    begin
      v := WebBrowser1.OleObject.Document.XMLDocument;
      aintf := IUnknown(v) as IXMLDomDocument;
      ShowMessage( aintf.documentElement.nodeName);end;
      

  5.   

    eastliangliang(青苹果:拒绝羊皮的狼) 
    的确是这样的,问题OK,散分