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,散分