Traversing允许您遍历HTML节点。
属性
名称 | 描述 |
---|---|
ChildNodes | Gets all the children of the node. |
FirstChild | Gets the first child of the node. |
LastChild | Gets the last child of the node. |
NextSibling | Gets the HTML node immediately following this element. |
ParentNode | Gets the parent of this node (for nodes that can have parents). |
方法
名称 | 描述 |
---|---|
Ancestors() | Gets all the ancestor of the node. |
Ancestors(String) | Gets ancestors with matching name. |
AncestorsAndSelf() | Gets all anscestor nodes and the current node. |
AncestorsAndSelf(String) | Gets all anscestor nodes and the current node with matching name. |
DescendantNodes | Gets all Descendant nodes for this node and each of child nodes |
DescendantNodesAndSelf | Returns a collection of all descendant nodes of this element, in document order |
Descendants() | Gets all Descendant nodes in enumerated list |
Descendants(String) | Get all descendant nodes with matching name |
DescendantsAndSelf() | Returns a collection of all descendant nodes of this element, in document order |
DescendantsAndSelf(String) | Gets all descendant nodes including this node |
Element | Gets first generation child node matching name |
Elements | Gets matching first generation child nodes matching name |
public HtmlNodeCollection ChildNodes { get; }
获取节点的所有子节点。ChildNodes
是HtmlAgilityPack.HtmlNode 的成员
以下示例显示节点的所有子元素。
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
var htmlBody = htmlDoc.DocumentNode.SelectSingleNode("//body");
HtmlNodeCollection childNodes = htmlBody.ChildNodes;
foreach (var node in childNodes)
{
if (node.NodeType == HtmlNodeType.Element)
{
Console.WriteLine(node.OuterHtml);
}
}
public HtmlNode FirstChild { get; }
获取节点的第一个子节点。FirstChild
是HtmlAgilityPack.HtmlNode 的成员
以下示例显示节点的第一个子节点。
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
var htmlNodes = htmlDoc.DocumentNode.SelectNodes("//body");
var htmlBody = htmlDoc.DocumentNode.SelectSingleNode("//body");
HtmlNode firstChild = htmlBody.FirstChild;
Console.WriteLine(firstChild.OuterHtml);
public HtmlNode LastChild { get; }
获取节点的最后一个子节点。LastChild
是HtmlAgilityPack.HtmlNode的成员
以下示例显示节点的最后一个子节点。
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
var htmlNodes = htmlDoc.DocumentNode.SelectNodes("//body");
var htmlBody = htmlDoc.DocumentNode.SelectSingleNode("//body");
HtmlNode lastChild = htmlBody.LastChild;
Console.WriteLine(lastChild.OuterHtml);
public HtmlNode NextSibling { get; }
获取紧跟在此元素后面的HTML节点。 NextSibling
是HtmlAgilityPack.HtmlNode 的成员
以下示例显示下一个兄弟节点。
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
var node = htmlDoc.DocumentNode.SelectSingleNode("//body/h1");
HtmlNode sibling = node.NextSibling;
while (sibling != null)
{
if(sibling.NodeType == HtmlNodeType.Element)
Console.WriteLine(sibling.OuterHtml);
sibling = sibling.NextSibling;
}
public IEnumerable < HtmlNode > Ancestors()
获取节点的所有祖先。Ancestors
方法是HtmlAgilityPack.HtmlNode的成员
返回:
返回此元素的所有祖先节点的集合。
以下示例显示所有祖先的名称。
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
var node = htmlDoc.DocumentNode.SelectSingleNode("//b");
foreach (var nNode in node.Ancestors())
{
if (nNode.NodeType == HtmlNodeType.Element)
{
Console.WriteLine(nNode.Name);
}
}
public IEnumerable<HtmlNode>
Ancestors(string name)
获取具有匹配名称的祖先。 Ancestors
方法是HtmlAgilityPack.HtmlNode 的成员
参数:
name: 祖先节点的名称。
返回:
返回具有匹配名称的此元素的所有祖先节点的集合。
以下示例显示具有匹配名称的祖先的名称。
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
var node = htmlDoc.DocumentNode.SelectSingleNode("//b");
foreach (var nNode in node.Ancestors("body"))
{
if (nNode.NodeType == HtmlNodeType.Element)
{
Console.WriteLine("Node name: " + nNode.Name);
Console.WriteLine(nNode.InnerText);
}
}
public IEnumerable<HtmlNode>
AncestorsAndSelf()
获取节点的所有祖先和节点本身。 AncestorsAndSelf
方法是HtmlAgilityPack.HtmlNode 的成员
返回:
还返回所有祖先节点和节点本身的集合。
例子
以下示例显示所选节点及其所有祖先的名称。
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
var node = htmlDoc.DocumentNode.SelectSingleNode("//u");
foreach (var nNode in node.AncestorsAndSelf())
{
if (nNode.NodeType == HtmlNodeType.Element)
{
Console.WriteLine(nNode.Name);
}
}
public IEnumerable<HtmlNode>
AncestorsAndSelf(string name)
获取具有匹配名称的祖先和节点本身。AncestorsAndSelf
方法是HtmlAgilityPack.HtmlNode的成员
参数:
name: 祖先节点的名称。
返回:
返回所有祖先节点和节点本身的名称匹配的集合。
以下示例显示所选节点及其所有具有匹配名称的祖先的名称
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
var node = htmlDoc.DocumentNode.SelectSingleNode("//u");
foreach (var nNode in node.AncestorsAndSelf("p"))
{
if (nNode.NodeType == HtmlNodeType.Element)
{
Console.WriteLine(nNode.Name);
}
}
public IEnumerable<HtmlNode>
DescendantNodes([int level = 0])
获取此节点和每个子节点的所有后代节点。DescendantNodes
方法是HtmlAgilityPack.HtmlNode的成员
参数:
level:要在html树中解析的节点的深度级别。
返回:
返回此元素的所有后代节点的集合。
例子
以下示例显示所有后代节点的名称。
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
var node = htmlDoc.DocumentNode.SelectSingleNode("//body");
foreach (var nNode in node.DescendantNodes())
{
if (nNode.NodeType == HtmlNodeType.Element)
{
Console.WriteLine(nNode.Name);
}
}
public IEnumerable<HtmlNode>
DescendantNodesAndSelf([int level = 0])
以文档顺序获取此元素的所有后代节点的集合。 DescendantNodesAndSelf
方法是HtmlAgilityPack.HtmlNode的成员
返回:
以文档顺序返回此元素的所有后代节点的集合。
以下示例显示所有后代节点的名称和节点本身。
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
var node = htmlDoc.DocumentNode.SelectSingleNode("//body");
foreach (var nNode in node.DescendantNodesAndSelf())
{
if (nNode.NodeType == HtmlNodeType.Element)
{
Console.WriteLine(nNode.Name);
}
}
public IEnumerable<HtmlNode>
Descendants([int level = 0])
获取枚举列表中的所有后代节点。Descendants
是* HtmlAgilityPack.HtmlNode *的成员
参数:
level: 要在html树中解析的节点的深度级别。
返回:
返回此元素的所有后代节点的集合。
以下示例显示所有后代节点的名称。
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
var node = htmlDoc.DocumentNode.SelectSingleNode("//body");
foreach (var nNode in node.Descendants())
{
if (nNode.NodeType == HtmlNodeType.Element)
{
Console.WriteLine(nNode.Name);
}
}
public IEnumerable<HtmlNode>
Descendants(string name)
获取所有具有匹配名称的后代节点。Descendants
是HtmlAgilityPack.HtmlNode的成员
参数:
name: 后代节点的名称。
返回:
返回名称匹配的所有后代节点的集合。
以下示例显示所有具有匹配名称的后代节点的名称。
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
var node = htmlDoc.DocumentNode.SelectSingleNode("//body");
foreach (var nNode in node.Descendants("h2"))
{
if (nNode.NodeType == HtmlNodeType.Element)
{
Console.WriteLine(nNode.Name);
}
}
public IEnumerable<HtmlNode>
DescendantsAndSelf()
以文档顺序获取此元素的所有后代节点的集合。 DescendantsAndSelf
方法是HtmlAgilityPack.HtmlNode的成员
返回:
以文档顺序返回此元素的所有后代节点的集合。
以下示例显示所有后代的名称和节点本身。
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
var node = htmlDoc.DocumentNode.SelectSingleNode("//body");
foreach (var nNode in node.DescendantsAndSelf())
{
if (nNode.NodeType == HtmlNodeType.Element)
{
Console.WriteLine(nNode.Name);
}
}
public IEnumerable < HtmlNode > DescendantsAndSelf(string name)
获取所有具有匹配名称的后代节点和节点本身。 DescendantsAndSelf
是HtmlAgilityPack.HtmlNode 的成员
参数:
name: 后代节点的名称。
返回:
返回具有匹配名称的所有后代和节点本身的集合。
以下示例显示所有具有匹配名称的后代节点的名称以及节点本身。
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
var node = htmlDoc.DocumentNode.SelectSingleNode("//body");
foreach (var nNode in node.DescendantsAndSelf("h2"))
{
if (nNode.NodeType == HtmlNodeType.Element)
{
Console.WriteLine(nNode.OuterHtml);
}
}
public HtmlNode Element(string name)
获取具有匹配名称的第一代子节点。 Element
方法是HtmlAgilityPack.HtmlNode的成员
参数:
name: 子节点的名称。
返回:
返回具有匹配名称的第一代子节点。
以下示例显示具有匹配名称的第一代子节点。
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
var htmlBody = htmlDoc.DocumentNode.SelectSingleNode("//body");
var node = htmlBody.Element("p");
Console.WriteLine(node.OuterHtml);
public IEnumerable < HtmlNode > Elements(string name)
获取具有匹配名称的第一代子节点。Elements
方法是HtmlAgilityPack.HtmlNode 的成员
参数:
name: 子节点的名称。
返回:
返回具有匹配名称的第一代子节点的集合。
以下示例显示具有匹配名称的第一代子节点。
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
var htmlBody = htmlDoc.DocumentNode.SelectSingleNode("//body");
var nodes = htmlBody.Elements("h2");
foreach (var node in nodes)
{
if (node.NodeType == HtmlNodeType.Element)
{
Console.WriteLine(node.OuterHtml);
}
}