使用XPATH使用HTML Agility Pack获取元标记属性

Eug*_*ene 5 html xpath html-agility-pack

META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1" />
TITLE>Microsoft Corporation
META http-equiv="PICS-Label" content="(PICS-1.1 "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0))" />
META NAME="KEYWORDS" CONTENT="products; headlines; downloads; news; Web site; what's new; solutions; services; software; contests; corporate news;" />
META NAME="DESCRIPTION" CONTENT="The entry page to Microsoft's Web site. Find software, solutions, answers, support, and Microsoft news." />
META NAME="MS.LOCALE" CONTENT="EN-US" />
META NAME="CATEGORY" CONTENT="home page" />

我想知道我XPATH需要获得使用HTML敏捷性包的类别meta标签的内容属性的值.(I去除第一<在HTML代码中的每一行,因此它会后).

Roh*_*wal 14

很长一段时间,HtmlAgilityPack 没有能力直接查询属性值.您必须遍历元节点列表.这是一种方式 -

var doc = new HtmlDocument();
doc.LoadHtml(htmlString);

var list = doc.DocumentNode.SelectNodes("//meta"); 
foreach (var node in list)
{
    string content = node.GetAttributeValue("content", "");
}
Run Code Online (Sandbox Code Playgroud)

但看起来有一个实验性的xpath版本可以让你这样做.

doc.Document.SelectNodes("//meta/@content") 
Run Code Online (Sandbox Code Playgroud)

将返回HtmlAttribute对象的列表.