关于网友提出的“ 2006年的最后一道难到N个高手的XML,期待解决。。。。。”问题疑问,本网通过在网上对“ 2006年的最后一道难到N个高手的XML,期待解决。。。。。”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 2006年的最后一道难到N个高手的XML,期待解决。。。。。
描述: 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: 不好意思,好些天没进论坛了..
楼主试试下面的代码:
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;
解决方案2: 楼主,你的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之类的对象
以上介绍了“ 2006年的最后一道难到N个高手的XML,期待解决。。。。。”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3670993.html