使用Html Agility Pack获取给定标记的所有属性值

时间:2010-03-17 13:30:23

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

我想用html agility pack获取'span'标签的'id'属性的所有值。 但我没有标记属性。这是代码

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

如果有人告诉我这里有什么不对,我会很感激。

1 个答案:

答案 0 :(得分:1)

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;