【发布时间】:2014-02-12 22:42:39
【问题描述】:
我认为它类似于(伪代码):
var pars = new List<string>();
string par;
while (not eof("Platypus.html"))
{
par = getNextParagraph();
pars.Add(par);
}
...getNextParagraph() 查找下一个"<p>" 并继续直到找到"</p>",烧毁它后面的桥(“剪切”段落,以便一遍又一遍地找不到它)。或者类似的。
有没有人知道如何准确地做到这一点/更好的方法?
更新
我尝试使用 Aurelien Souchet 的代码。
我有以下用途:
using HtmlAgilityPack;
using HtmlDocument = System.Windows.Forms.HtmlDocument;
...但是这段代码:
HtmlDocument doc = new HtmlDocument();
不需要(“此处无法访问私有构造函数'HtmlDocument'”)
此外,“doc.LoadHtml()”和“doc.DocumentNode”都给出旧的“无法解析符号'Bla'”错误消息
更新 2
好的,我必须在前面加上“HtmlAgilityPack”。以便消除歧义。
【问题讨论】:
-
在 StackOverflow 上查看 question
-
您是否可以控制要解析的 html?您如何确定“段落”是什么? P标签?那些不一致的 Web 开发人员呢?你在寻找 DIV 标签吗? BR 标签?你能保证你所读内容的一致性吗?如果不是,那么您正在谈论一项艰巨的任务。问题本身很笼统,归结为“如何解析html”,关于解析html的问题已经在这里讨论过很多次了……stackoverflow.com/search?q=parse+html
-
当然,如果您只是想要 P 标签并且不关心有很多开发人员随心所欲地做任何事情,而不遵循任何给定的标准,那么前面的注释是无效的。
-
如果您不介意使用 Html Agility Pack,我认为您可以获得段落标签的集合,然后您可以对其进行迭代。 htmlagilitypack.codeplex.com
-
只需使用 HTMLAgility 包并选择所有 p 标签似乎是一个不错的第一次尝试。阅读 HTML 文件中的所有段落也是说明问题的更好方法,因为文件不一定有任何内容。 PS如果它们是嵌套的怎么办?
标签: c# html text documentation-generation paragraph