【问题标题】:How can I load an HTML string into Webkit.net so I can access its "DOM"如何将 HTML 字符串加载到 Webkit.net 中,以便访问它的“DOM”
【发布时间】:2010-10-05 19:42:56
【问题描述】:

我想使用 Webkit.net 加载 (X)HTML 字符串,然后分析 DOM 以“压缩”它(删除空格、换行符、将 <input></input><input /> 转换为 <input> (基本上是 XHTML 到 HTML 的转换,允许 doctype)。

有没有办法在 webkit.net 中获取“DOM 树”?如果没有,是否有任何 .net HTML 解析器可以做到这一点?如果没有,是否有一个 .net 组件已经可以满足我的要求?

一些解释我想做的伪代码:

var DOM = Webkit.DOM.FromString("<!DOCTYPE HTML><html><head><title> Hello</title></head><body><INPUT Value="Click here"  type="submit" /><br /><span class='bold red'>An element!</span><script type='text-javascript'>/*do stuff*/</script>  <script>/*do more stuff*/</script></body></html>");

var sb = new StringBuilder();

// this would recursively iterate over all childnodes in a real scenario.
foreach(var node in DOM.Nodes){
    sb.Append(/* Compress & sort attributes, normalize & strip unneeded quotes, remove unneeded end & self-closing tags, etc. */);
}

// return optimally compressed output...
// something like:
// <!doctype html><title>Hello</title><input type=submit value="Click here"><br><span class="bold red">An element!</span><script>/*do stuff*/</script><script>/*do more stuff*/</script>
return sb.ToString();

【问题讨论】:

  • 如果没有人想出更好的方法,我可能会使用 HTML Agility Pack。

标签: c# .net html-parsing webkit.net


【解决方案1】:

没有使用过 Webkit.Net,但我使用 HTMLAgilityPack 完成了与您想到的任务类似的任务,并且效果很好。所以我认为你回答了你自己的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 2011-04-23
    相关资源
    最近更新 更多