예제 #1
0
 public Accumulator(DomElement root,
                    DomQuery elements,
                    Evaluator eval)
 {
     this.root = root;
     this.elements = elements;
     this.eval = eval;
 }
예제 #2
0
        static DomQuery FilterOut(ICollection<DomElement> elements,
                                  ICollection<DomElement> outs)
        {
            DomQuery output = new DomQuery();
            foreach (DomElement el in elements) {
                bool found = false;

                foreach (DomElement oe in outs) {
                    if (el.Equals(oe)) {
                        found = true;
                        break;
                    }
                }

                if (!found)
                    output.Add(el);
            }
            return output;
        }
예제 #3
0
 public static DomQuery Collect(Evaluator eval, DomElement root)
 {
     DomQuery elements = new DomQuery();
     new NodeTraversor(new Accumulator(root, elements, eval)).Traverse(root);
     return elements;
 }