如何使用HtmlAgilityPack获取这两个内容?

时间:2012-07-30 16:03:27

标签: c# html html-agility-pack

Html代码:

<div>
    <div>Name</div>
    Date
</div>

如何使用HtmlAgilityPack获取NameDate值?

3 个答案:

答案 0 :(得分:1)

HtmlDocument doc = new HtmlDocument();
 doc.Load("file.htm");
 foreach(HtmlNode div in doc.DocumentElement.SelectNodes("//div"])
 {
    string parent = div.InnerText; //this will give you Name
    foreach (HtmlNode child in div.ChildNodes)
    {
     string childDiv = child.InnerText; //this will give you the child
    }
 }

答案 1 :(得分:0)

var doc = new HtmlDocument();
doc.LoadHtml("<div><div>Name</div>Date</div>");
var nodes = doc.DocumentNode
    .DescendantNodes()
    .Where(n => n.NodeType == HtmlNodeType.Text);
foreach (var node in nodes)
{
    var value = node.InnerText;
}

答案 2 :(得分:0)

硬编码:

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml("<div><div>Name</div>Date</div>");
                Console.WriteLine(((HtmlTextNode)doc.DocumentNode.ChildNodes[0].ChildNodes[0]).Text);
Console.WriteLine(((HtmlTextNode)doc.DocumentNode.ChildNodes[1]).Text);

如果您正在寻找的是所有文本节点(如Kevin Babcock的回答!)。你必须记住Xml(和HtmlAgility)中的文本是节点。