如何通过xpath获取内容

时间:2012-08-24 15:49:44

标签: c# xpath html-agility-pack

在我的网页上

<meta name="description" content="Learn about 94.100.179.159" />

如何通过Xpath或HtmlAgilityPack获取“了解94.100.179.159”的文字

我试过

HtmlWeb hwObject = new HtmlWeb();
            HtmlDocument htmldocObject = hwObject.Load("http://whois.domaintools.com/94.100.179.159");
            foreach (HtmlNode link in htmldocObject.DocumentNode.SelectNodes("//meta"))
            {
                string s = link.InnerText;
                Console.WriteLine(s);

            }
            Console.ReadLine();

但这不是我想要的,如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

//meta[@name = 'description']/@content

是您指定的属性的XPATH

string s = link.Value;  

应该返回属性内容。

答案 1 :(得分:1)

按如下方式选择节点

SelectNodes("//*[local-name()='meta')]"))

然后,对于每个HtmlNode

Console.WriteLine(link.Attributes["content"].Value);

答案 2 :(得分:1)

元标记没有任何内部文本,它们具有属性。

试试这个:

HtmlWeb hwObject = new HtmlWeb();
HtmlDocument htmldocObject = hwObject.Load("http://whois.domaintools.com/94.100.179.159");
foreach (HtmlNode link in htmldocObject.DocumentNode.SelectNodes("//meta"))
{
    Console.WriteLine("-META-");
    var attribDump=link.Attributes.Select(a=>a.Name+" : "+a.Value);
    foreach (var x in attribDump)
    {
        Console.WriteLine(x);
    }
}