使用HtmlAgilityPack获取iframe源代码

时间:2012-02-02 10:00:56

标签: c# .net xml xpath html-agility-pack

我想在html doc上获取所有iFrame源URL。我尝试使用带有xpath的HtmlAgilityPack - 但我似乎没有得到一个源列表。

HtmlAgilityPack.HtmlDocument myHtml= new HtmlDocument();
myHtml.LoadHtml(htmlString);

foreach (HtmlNode framesrc) in myHtml.DocumentNode.SelectNodes("//iframe/src"))
{
    srcCollection.add(framesrc);
}

我的xpath错了吗?

2 个答案:

答案 0 :(得分:3)

ifarme具有属性@src。所以你的XPath应该是//iframe/@src。它将选择所有@src的{​​{1}}。

答案 1 :(得分:1)

实际上这个开源html解析器使用的查询类似于以下查询:

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();

HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//iframe[@src]");


foreach(var node in nodes){
    HtmlAttribute attr = node.Attributes["src"];
    Console.WriteLine(attr.Value);
}
相关问题