public override XPathNavigator MatchNode(XPathNavigator navigator) {
if (name != "key" && prefix.Length != 0) {
throw XPathException.Create(Res.Xp_InvalidPattern);
}
this.Evaluate(new XPathSingletonIterator(navigator, /*moved:*/true));
XPathNavigator nav = null;
while ((nav = this.Advance()) != null) {
if (nav.IsSamePosition(navigator)) {
return nav;
}
}
return nav;
}