public bool MoveToStartElement (string localname, string URN) {
if (!isActive) {
return false;
}
// for each:
this.currentDepth ++;
bool result = false;
foreach (AxisStack stack in this.axisStack) {
// special case for self tree "." | ".//."
if (stack.Subtree.IsSelfAxis) {
if ( stack.Subtree.IsDss || (this.CurrentDepth == 0))
result = true;
continue;
}
// otherwise if it's context node then return false
if (this.CurrentDepth == 0) continue;
if (stack.MoveToChild (localname, URN, this.currentDepth)) {
result = true;
// even already know the last result is true, still need to continue...
// run everyone once
}
}
return result;
}