我正在寻找一种从 html 文档中提取 html“片段”的有效方法。我的first implementation其中使用了 Html Agility Pack。这似乎是解决这个问题的合理方法,直到我开始在大型 html 文档上运行提取 - 对于如此微不足道的事情,性能非常差(我猜是因为解析整个文档所花费的时间).
谁能建议一种更有效的方法来实现我的目标?
总结:
为了我的目的,一个 html“片段” 被定义为里面的所有内容
<body>
html的标签 文档理想情况下,我想返回 如果没有,内容不变 包含
<html>
或<body>
(我假设我收到了一个 html 片段开头)我在内存中提供了整个 html 文档(作为字符串),我不会按需流式传输它 - 因此潜在的解决方案无需担心这一点。
性能至关重要,因此潜在的解决方案应考虑到这一点。
示例输入:
<html>
<head>
<title>blah</title>
</head>
<body>
<p>My content</p>
</body>
</html>
期望的输出:
<p>My content</p>
欢迎使用 C# 或 VB.NET 解决方案。
最佳答案
大多数 html 不会与 XHTML 兼容。我会执行 HTTP get 请求并在结果文本中搜索 .Contains("<body>")
和 .Contains("</body>")
.您可以将这两个位置用作读者流的开始和停止索引。在 body 标签之外,您真的不需要担心 XML 合规性问题。
关于c# - 从 html 文档中提取 html 片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4388475/