我有一个包含文本的文件。我需要搜索一个字符串并在该行上提取href。
file.txt是包含基本wordpress主页的文件
最后我想要http://example.com之类的链接。 我试过几种方法,比如
DateTime dateTime = DateTime.UtcNow.Date;
string stringpart = dateTime.ToString("-dd-M-yyyy");
string finalword = "candy" + stringpart;
List<List<string>> groups = new List<List<string>>();
List<string> current = null;
foreach (var line in File.ReadAllLines(@"E:/file.txt"))
{
if (line.Contains("-22-8-2014") && current == null)
current = new List<string>();
else if (line.Contains("candy") && current != null)
{
groups.Add(current);
current = null;
}
if (current != null)
current.Add(line);
}
foreach (object o in groups)
{
Console.WriteLine(o);
}
Console.ReadLine();
}
答案 0 :(得分:1)
要正确执行此操作,您必须解析此html文件。使用CSquery,HTML Agility Pack或SgmlReader等内容。
使用CSQuery解决您的问题:
public IEnumerable<string> ExtractLinks(string htmlFile)
{
var page = CQ.CreateFromFile(htmlFile);
return page.Select("a[href]").Select(tag => tag.GetAttribute("href"));
}
答案 1 :(得分:0)
如果您决定使用HtmlAgilityPack,这应该很简单:
var doc = new HtmlDocument();
//load your HTML file to HtmlDocument
doc.Load("path_to_your_html.html");
//select all <a> tags containing href attribute
var links = doc.DocumentNode.SelectNodes("//a[@href]");
foreach(HtmlNode link in links)
{
//print value of href attribute
Console.WriteLine(link.GetAttributeValue("href", "");
}