如何解析HTML-as-string以使用C#获取其元素属性?

时间:2012-03-22 09:23:04

标签: c# html string

让我们假设我得到一个HTML表作为字符串,我想 - 使用C# - 将其解析为其元素(td,div - 如果有的话等)并获取它们的每个属性,例如'style' ,'上课'......

我的目标是最终获得一个HTML表格并从中构建一个自己的表格对象,保留表格的大部分(如果不是全部)属性。 现在,我能想到这样做的唯一方法,在我看来就像编码噩梦:将字符串解剖到每个'tr'和'td'并开始挖掘,寻找每个元素的属性并尝试将其解析为我可以使用的东西 - 还有其他方法吗?

示例:

string someString = "<div><table cellpadding="0" cellspacing="0"><tr><td style="border-bottom:1px solid transparent;width:1px;font-size:1px;height:1px;line-height:1px;"><div class="someClass">..."

将成为(在我的假设对象中):

MyTable table = new MyTable
{
   CellPadding = "0",
   ...
}

MyTableRow row = new MyTableRow 
{
   Cell[0].Style.BorderBottom = "1px solid transparent",
   Cell[0].Style.Width = "1px",
   ...
}

你明白了这一点:)

2 个答案:

答案 0 :(得分:3)

有一个名为HtmlAgilityPack的库来解析HTML文档,并允许您使用C#代码访问DOM。

答案 1 :(得分:0)

我还建议您查看SGMLReader,它是XMLReader的替代品,但处理格式错误的HTML。