Obtenga todos los valores de atributo de la etiqueta dada con Html Agility Pack

c# html html-agility-pack xml xpath

Pregunta

Quiero obtener todos los valores del atributo 'id' de la etiqueta 'span' con el paquete de agilidad html. Pero en lugar de atributos tengo etiquetas ellos mismos. Aquí está el código

        private static IEnumerable<string> GetAllID()
        {
            HtmlDocument sourceDocument = new HtmlDocument();
            sourceDocument.Load(FileName);
            var nodes = sourceDocument.DocumentNode.SelectNodes(
                 @"//span/@id");
            return nodes.Nodes().Select(x => x.Name);
        }

Apreciaré si alguien me dice lo que está mal aquí.

Respuesta aceptada

tratar

var nodes = sourceDocument.DocumentNode.SelectNodes("//span[@id]");
List<string> ids = new List<string>(nodes.Count);

if(nodes != null)
{
    foreach(var node in nodes)
    {
        if(node.Id != null)
        ids.Add(node.Id);
    }
}

return ids;



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é