2010-10-27 108 views
1

我需要使用C#获取HTML文件正文标签内的所有内容。有没有什么好的和有效的方法来做到这一点?阅读<body>使用C#编写HTML文件的标签

+1

这是一个磁盘上的文件还是您要下拉的网页? – R0MANARMY 2010-10-27 20:32:50

+1

对不起,刚开始接受,我的错误 – 2010-10-27 20:41:21

+0

和是我是需要解析的文件的所有者 – 2010-10-27 20:41:40

回答

1

它很容易将页面代码拖到一个字符串中,只需搜索字符串“< body”和字符串“</body”的出现,然后只需要一点数学算法即可获得您的值。

7

退房的HTML Agility Pack做各种HTML操作

它给你有点类似于XmlDocument XML处理接口的接口:

HtmlDocument doc = new HtmlDocument(); 
doc.Load("file.htm"); 

HtmlNode bodyNode = doc.DocumentNode.SelectSingleNode("/html/body"); 

if(bodyNode != null) 
{ 
    // do something 
} 
3

你可以看看SgmlReaderHTML Agility Pack

+0

SgmlReader的这个URL导致了一个很老的版本,这个版本多年来一直没有被触及。这些天维护SgmlReader的人是MindTouch。由于其较低级别的方法和主动维护,我建议使用SgmlReader而不是HtmlAgilityPack。 http://developer.mindtouch.com/en/docs/SgmlReader – 2010-10-27 21:02:06

+0

如果你的HTML格式不符合XHTML,我认为你会发现SgmlReader(和上面的注释中使用mindtouch版本)是最好的选择。 – nrkn 2010-10-27 23:19:36

+0

@asbjomu - 通过mindtouch站点上的转换示例,我找不到一个SgmlReader生成与浏览器匹配的DOM的单个示例。我不知道HTML Agility Pack是否更好,但我没有留下深刻的印象。 – Alohci 2010-10-27 23:33:13

0

如果碰巧是XHTML,那么你可以使用XPath。

0

使用XML方法,XPath。要使用HTML进行更高级的操作,请使用HTML Agility pack。