public override bool MoveToPrevious() {
XmlNode sibling = PreviousSibling(source);
if (sibling == null) {
return false;
}
if (sibling.IsText) {
if (source.IsText) {
sibling = PreviousSibling(TextStart(sibling));
if (sibling == null) {
return false;
}
}
else {
sibling = TextStart(sibling);
}
}
XmlNode parent = ParentNode(sibling);
Debug.Assert(parent != null);
while (!IsValidChild(parent, sibling)) {
sibling = PreviousSibling(sibling);
if (sibling == null) {
return false;
}
// if (sibling.IsText) {
// sibling = TextStart(sibling);
// }
}
source = sibling;
return true;
}