SelectSingleNode與SelectNodes始終從根元素開始算,即使是非根節點調用。
當使用節點.ChildNodes后,SelectSingleNode與SelectNodes的對象才會變為真正的節點,而非根節點。
HtmlNode currentNode = htmlDoc.DocumentNode; // 根節點
currentNode = currentNode.SelectSingleNode("//*[contains(@class,'aa')]"); // 指向非根節點
HtmlNode node2= currentNode.SelectSingleNode("//*[contains(@class,'aa')]"); // 指向根節點的第一個匹配對象,而非currentNode的第一個匹配
currentNode = htmlDoc.DocumentNode.FirstChild; // 根節點
currentNode = currentNode.SelectSingleNode("//*[contains(@class,'aa')]"); // 指向非根節點
foreach (HtmlNode node2 in currentNode.ChildNodes)
{
HtmlNode node3 = node2.SelectSingleNode("//*[contains(@class,'a3')]"); // 這而才是指向node2中的匹配對象
}
