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

jerry8 2006-12-31 09:30:40
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

高手,给个东东。或修改下。。
...全文
305 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jerry8 2007-02-11
  • 打赏
  • 举报
回复
eastliangliang(青苹果:拒绝羊皮的狼)
的确是这样的,问题OK,散分
halfdream 2007-01-19
  • 打赏
  • 举报
回复
不好意思,好些天没进论坛了..
楼主试试下面的代码:

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;
aardvard 2007-01-08
  • 打赏
  • 举报
回复
你的 IXMLDocument 的Active属性置为 True 了吗 ?如果时False就会报错。
eastliangliang 2007-01-06
  • 打赏
  • 举报
回复
哦哈哈,偶和楼主遇到的问题一样,偶刚想发帖,搜了一下,还真有类似的问题,偶就帮你顶起来吧。
偶发现取到的XML,每个节点前面都有一个“-”,和浏览器里看到的一样,不信你把字符串保存下来看看,偶也不知如何解决呢。
eastliangliang 2007-01-06
  • 打赏
  • 举报
回复
哇哈哈,搞定,这样楼主:
FXMLDocu:TXMLDocument;

self.FXMLDocu.FileName := 'http://211.77.125.7:8080/rece.aspx?user=rote&pwd=123';
self.FXMLDocu.Active := true;

不用那个WebBrowser了,你试试看。
halfdream 2006-12-31
  • 打赏
  • 举报
回复
楼主,你的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之类的对象
jerry8 2006-12-31
  • 打赏
  • 举报
回复
小弟,金库已空,全部送上。。
jerry8 2006-12-31
  • 打赏
  • 举报
回复
楼上,返回的是XML文件

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧