public static XmlNode FindNodeInChildren(this XmlNode root, IFindCriteria <XmlNode> criteria) { XmlNode currentNode = root.FirstChild; while (currentNode != null) { if (criteria.MatchesCriteria(currentNode)) { return(currentNode); } currentNode = currentNode.NextSibling; } return(null); }
public static XmlNode FindNodeRecursive(this XmlNode root, IFindCriteria <XmlNode> criteria) { if (criteria.MatchesCriteria(root)) { return(root); } XmlNode currentNode = root.FirstChild; while (currentNode != null) { var node = currentNode.FindNodeRecursive(criteria); if (node != null) { return(node); } currentNode = currentNode.NextSibling; } return(null); }