如何从WebKit.Net中的元素获取html

时间:2013-07-17 22:13:34

标签: c# webkit.net

我正在将一个旧项目迁移到WebKit.NET 0.5 Cairo。我已经过去的大多数障碍但我无法弄清楚如何获取单个 WebKit.DOM.Element 对象的HTML。

我可以使用WebKitBrowser.DocumentText读取整个文档的HTML,但这不是我需要的。

以下基本上是我想要完成的事情。我浏览过文档并进行了大量搜索,并在所有方面都空洞。我发现无法完成代码片段中的最后一行。

WebKit.DOM.Element newdiv = webKitBrowser1.Document.CreateElement("DIV");
...
[ Create some SPAN's and append them to newdiv ]
...
String divHTML = newdiv.DocumentText // <-- DocumentText is not a member of WebKit.DOM.Element

使用IE控件,我可以执行 divHTML = newdiv.InnerHTML ,但找不到与WebKit.NET相同的任何内容。

作为替代方案,我会接受一种解决方案,将HTML注入元素,这样我就可以手动添加IMG标记,而无需专门为其创建DOM元素。使用divHTML.TextContent,html被解释为纯文本。

提前致谢!

1 个答案:

答案 0 :(得分:0)

5年后,现在我可以回答自己的问题了,因为这个问题已经坐了很长时间,并被标记为一个受欢迎的问题,所以我将正式回答。

反复试验最终导致了一种不太理想但实用的解决方案,形式为

WebKit.DOM.Element newdiv = webKitBrowser1.Document.CreateElement("DIV");
...
[ Create some SPAN's and append them to newdiv ]
...
String divHTML = webKitBrowser1.StringByEvaluatingJavaScriptFromString("document.getElementById('DivElementID').innerHTML");

然后,也可以使用相同的方法来设置Element的innerHTML。

这也解决了一个未提及的WebKitBrowser.DocumentText问题,该问题仅反映原始HTML,而没有任何修改结果。