小编Goh*_*ool的帖子

如何从WebBrowser控件获取XML(RAW/SOURCE)

我在我的Delphi和.Net C#测试项目中使用WebBrowser控件导航到本地测试XML文件,并尝试将内容保存回.Net DocumentCompleted事件和Delphi onNavigateComple2事件中的XML文件.

问题是我总是得到HTML,它将被浏览器转换为查看(检查我的输出:我使用以下代码保存了它)

procedure TForm1.SaveHTMLSourceToFile(const FileName: string;
  WB: TWebBrowser);
var
  PersistStream: IPersistStreamInit;
  FileStream: TFileStream;
  Stream: IStream;
  SaveResult: HRESULT;
begin
  PersistStream := WB.Document as IPersistStreamInit;
  FileStream := TFileStream.Create(FileName, fmCreate);
  try
    Stream := TStreamAdapter.Create(FileStream, soReference) as IStream;
    SaveResult := PersistStream.Save(Stream, True);
    if FAILED(SaveResult) then
      MessageBox(Handle, 'Fail to save source', 'Error', 0);
  finally
    FileStream.Free;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

好吧,我已经尝试了几乎所有东西,到处搜索,但到目前为止找不到任何有用的东西.使用下面的Delphi代码我可以显示SOURCE的工作原理(这意味着源代码在那里)但是我不能使用它,因为它会播放一个对话框并且不容易获取数据并关闭该对话框(在我的测试用例中)我得到带有我的xml内容的notepad.exe)

  AWebBrowser.Document.QueryInterface(IOleCommandTarget, CmdTarget) ;
  if CmdTarget <> nil then
  try
    CmdTarget.Exec(PtrGUID, HTMLID_VIEWSOURCE, 0, vaIn, vaOut) ;
  finally
    CmdTarget._Release;
  end;
Run Code Online (Sandbox Code Playgroud)

我也设法调用SAVE AS呼叫与XXX-HIDE-XXX标志,但它接缝了IE 5另存为对话框将显示(Hide标志将被忽略).

我还试图从缓存中获取XML数据(缓存API)但在我的情况下我不会得到任何东西2.如果在客户机器上缓存被禁用怎么办?;-) …

c# xml browser delphi webbrowser-control

9
推荐指数
1
解决办法
2962
查看次数

C#中是否有任何multipart/form-data解析器 - (NO ASP)

我只是想编写一个多部分解析器,但事情变得复杂,并想知道是否有人知道C#中的现成解析器!

为了说清楚,我正在编写自己的"小"http服务器,并且需要解析多部分表单数据!

在此先感谢Gohlool

c# parsing multipartform-data

8
推荐指数
2
解决办法
2万
查看次数

格式为double,没有小数点

我要将双倍转换为10位+ 4位小数.

所以说:我有一个双999,56.我要00000009995600 - >没有逗号!

我有的是:

string.format("{0:0000000000.0000}",value)但我得到的是:0000000999,5600

所以我现在可以做的是搜索逗号并删除它,但我想知道在这种特定格式中是否还有另一种"干净"的格式化方式?

谢谢!

.net c# string format double

3
推荐指数
1
解决办法
1万
查看次数