public override bool MoveToNext(XPathNodeType type) {
XmlNode sibling = NextSibling(source);
if (sibling == null) {
return false;
}
if (sibling.IsText
&& source.IsText) {
sibling = NextSibling(TextEnd(sibling));
if (sibling == null) {
return false;
}
}
int mask = GetContentKindMask(type);
if (mask == 0) {
return false;
}
do {
if (((1 << (int)sibling.XPNodeType) & mask) != 0) {
source = sibling;
return true;
}
sibling = NextSibling(sibling);
}
while (sibling != null);
return false;
}