现在的位置: 首页 > 综合 > 正文

2006年的最后一道难到N个高手的XML,期待解决。。。。。

2012年03月04日 ⁄ 综合 ⁄ 共 2166字 ⁄ 字号 评论关闭
2006年的最后一道难到N个高手的XML,期待解决。。。。。 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_200612310930407.html
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  
   
  高手,给个东东。或修改下。。

小弟,金库已空,全部送上。。

楼主,你的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之类的对象

楼上,返回的是XML文件

哦哈哈,偶和楼主遇到的问题一样,偶刚想发帖,搜了一下,还真有类似的问题,偶就帮你顶起来吧。  
  偶发现取到的XML,每个节点前面都有一个“-”,和浏览器里看到的一样,不信你把字符串保存下来看看,偶也不知如何解决呢。

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

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

不好意思,好些天没进论坛了..  
  楼主试试下面的代码:  
   
  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;  
 

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

抱歉!评论已关闭.