使用C#解析HTML标签

时间:2018-11-26 16:12:05

标签: c# html

我有html代码:

<p>Answer1</p>
<h2>Category1</h2>
<p>Answer2</p>
<p>Answer3</p>

我需要进行分析,以便每个答案(p)都属于上述类别(h2)。 如果上面没有任何内容,则类别将为空。

看起来像这样:

obj1.category = null;  obj1.answer = "Answer1";

obj2.category ="Category1"; obj2.answer = "Answer2";

obj3.category ="Category1"; obj3.answer = "Answer3";

我试图解决这个问题,但这没用。

2 个答案:

答案 0 :(得分:2)

使用HTMLAgilityPack。它将解析HTML,并允许您使用LINQ来SELECT来使用DOM结构中需要的任何内容。

答案 1 :(得分:1)

除了HTMLAgilityPack,我还为C#编写了轻量级的HTML解析器。

该技术没有什么大秘密,但这是一种详尽的工作。您只需要逐个字符地浏览文本并提取HTML元素即可。

我的解析器在Github上的名称为HtmlMonkey

更新:

我刚刚添加了对相当高级的选择器的支持,可以轻松地在已解析的文档中查找节点。