Obtenir le cadre source i en utilisant HtmlAgilityPack

.net c# html-agility-pack xml xpath

Question

J'essaie d'obtenir toutes les URL sources d'iFrame sur un doc html. J'ai essayé d'utiliser HtmlAgilityPack avec xpath - mais je ne semble pas recevoir de liste de sources.

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

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

Est-ce que mon xpath est faux? Merci!

Réponse acceptée

En fait, cet analyseur HTML opensource utilise une requête ressemblant à la requête suivante:

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);
}

Réponse populaire

ifarme a l'attribut @src . Donc, votre XPath devrait être //iframe/@src . Il sélectionnera @src de tous les iframe .




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi