2010-07-27 39 views
2

我在一个文件夹中有大约5000个html文件。我需要遍历它们,打开,使用xpath来获取10个值,关闭并存储在(SQL Server)数据库中。如何从.Net中的许多HTML文件读取xpath值?

使用.Net读取xpath值的最简单方法是什么?

xpaths应该非常稳定。

请提供的示例代码读取一个值,说/ HTML /头/标题/文本()

感谢

+0

是这些XHTML文件?如果没有,你将不得不使用Tidy或类似的东西将它们变成可分析的XML。如果他们已经是XHTML,你应该可以很容易地做到这一点 - 读取文件到XDocument,查询你需要的值,保存到数据库 - 然后重复下一个文件 – Jason 2010-07-27 01:09:49

+0

它们是XHTML 1.0 Transitional – 2010-07-27 01:16:01

回答

4

我想你应该看看HTML Agility Pack。它是一个HTML解析器而不是一个XML解析器,对于这个任务来说更好。如果有任何与解析XML不一致的东西,解析器将抛出异常。使用HTML解析器可以为输入文件提供更多的灵活性。

举例说明如何做所有HREF(链接)一些属性:

HtmlDocument doc = new HtmlDocument(); 
doc.Load("file.htm"); 
foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a[@href"]) 
{ 
    HtmlAttribute att = link["href"]; 
    att.Value = FixLink(att); 
} 

我不是附近的编译器,但你想要的例子是这样的:

string title = doc.DocumentNode.SelectSingleNode("//title").InnerText; 
+0

作品像一个魅力。谢谢一堆 – 2010-07-27 03:33:01