Obtener la fuente de marco usando HtmlAgilityPack

.net c# html-agility-pack xml xpath

Pregunta

Estoy tratando de obtener todas las direcciones URL de iFrame en un documento html. Intenté usar HtmlAgilityPack con xpath, pero parece que no obtengo una lista de fuentes.

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

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

¿Está mi xpath mal? ¡Gracias!

Respuesta aceptada

En realidad, este analizador html de código abierto utiliza la consulta como la siguiente consulta:

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

Respuesta popular

ifarme tiene atributo @src . Entonces tu XPath debería ser //iframe/@src . Se seleccionará @src de todos los iframe .



Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué