ottieni i frame sorgente usando HtmlAgilityPack

.net c# html-agility-pack xml xpath

Domanda

Sto cercando di ottenere tutti gli URL sorgente iFrame su un documento html. Ho provato a utilizzare HtmlAgilityPack con xpath, ma non sembra che stia ricevendo un elenco di fonti.

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

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

Il mio xpath è sbagliato? Grazie!

Risposta accettata

In realtà questo parser html opensource utilizza l'aspetto della query come la seguente query:

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

Risposta popolare

ifarme ha attributo @src . Quindi il tuo XPath dovrebbe essere //iframe/@src . Selezionerà @src di tutti gli iframe .



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché