如何从WebBrowser控件中获取XML(RAW/SOURCE)XML文件并尝试将内容保存回.NetDocumentCompleted事件和DelphionNavigateComple2事件中的XML文件。问题是我总是得到将由浏览器转换以查看的HTML(检查我的输出:我使用以下代码保存它)过程TForm1.SaveHTMLSourceToFile(constFileName:string;WB:TWebBrowser);varPersistStream:IPersistStreamInit;文件流:TFileStream;流:IStream;保存结果:HRESULT;beginPersistStream:=WB.DocumentasIPersistStreamInit;FileStream:=TFileStream.Create(文件名,fmCreate);尝试Stream:=TStreamAdapter.Create(FileStream,soReference)作为IStream;:=PersistStream.Save(Stream,True);ifFAILED(SaveResult)thenMessageBox(Handle,'Failtosavesource','Error',0);最后是FileStream.Free;结尾;结尾;搜索了几乎所有内容,但到目前为止找不到任何有用的东西。使用下面的Delphi代码我可以展示SOURCE是如何工作的(这意味着源代码在那里)但是我不能使用它因为它会播放一个对话框并且获取数据并关闭对话框并不容易(在我的测试用例中间)我得到notepad.exe和我的xml内容)AWebBrowser.Document.QueryInterface(IOleCommandTarget,CmdTarget);如果CmdTarget为nil,则尝试CmdTarget.Exec(PtrGUID,HTMLID_VIEWSOURCE,0,vaIn,vaOut);最后CmdTarget._Release;结束;我还设法使用xxx-HIDE-xxx标志调用SAVEAS调用,但它连接了IE5,因为将显示对话框(隐藏的标志将被忽略)。我也尝试从缓存(CacheAPI)获取XML数据,但在我的情况下我没有得到任何东西2.如果客户端机器上的缓存被禁用怎么办??InnerText或InnerHTMLatc。不能使用,因为它们包含-和+字符并且不代表原始RAW数据(源)仅供参考:我无法使用WebClient或Indy组件访问xml。我也不能充当代理,因为在客户端计算机上打开端口(如8080)的问题对于特权用户访问来说是一个痛苦。所以我在这里问你是否知道如何解决我的问题?提前致谢并欢呼输入:xxxx输出:BODY{font:x-small'Verdana';margin-right:1.5em}.c{cursor:hand}.b{color:red;font-family:'CourierNew';font-weight:bold;text-decoration:none}.e{margin-left:1em;text-indent:-1em;margin-right:1em}.k{margin-left:1em;text-indent:-1em;margin-right:1em}.t{color:#990000}.xt{color:#990099}.ns{color:red}.dt{color:green}.m{color:blue}.tx{font-weight:bold}.db{text-indent:0px;margin-left:1em;margin-top:0px;margin-bottom:0px;padding-left:.3em;border-left:1pxsolid#CCCCCC;font:smallCourier}.di{font:smallCourier}.d{color:blue}.pi{color:blue}.cb{text-indent:0px;margin-left:1em;margin-top:0px;margin-bottom:0px;padding-left:.3em;font:smallCourier;color:#888888}.ci{font:smallCourier;color:#888888}PRE{margin:0px;display:inline}-
