Пример #1
0
 public XPathSingletonIterator(XPathSingletonIterator it)
 {
     _nav = it._nav.Clone();
     _position = it._position;
 }
 public XPathSingletonIterator(XPathSingletonIterator it)
 {
     this.nav = it.nav.Clone();
     this.position = it.position;
 }
 public virtual object Evaluate(XPathExpression expr, XPathNodeIterator context)
 {
     CompiledXpathExpr expr2 = expr as CompiledXpathExpr;
     if (expr2 == null)
     {
         throw XPathException.Create("Xp_BadQueryObject");
     }
     Query query = Query.Clone(expr2.QueryTree);
     query.Reset();
     if (context == null)
     {
         context = new XPathSingletonIterator(this.Clone(), true);
     }
     object obj2 = query.Evaluate(context);
     if (obj2 is XPathNodeIterator)
     {
         return new XPathSelectionIterator(context.Current, query);
     }
     return obj2;
 }
Пример #4
0
        public virtual object Evaluate(XPathExpression expr, XPathNodeIterator context)
        {
            CompiledXpathExpr cexpr = expr as CompiledXpathExpr;
            if (cexpr == null)
            {
                throw XPathException.Create(SR.Xp_BadQueryObject);
            }
            Query query = Query.Clone(cexpr.QueryTree);
            query.Reset();

            if (context == null)
            {
                context = new XPathSingletonIterator(this.Clone(), /*moved:*/true);
            }

            object result = query.Evaluate(context);

            if (result is XPathNodeIterator)
            {
                return new XPathSelectionIterator(context.Current, query);
            }

            return result;
        }