Verifier si seulement Descendant et Ancestor sont influence sur l'ordre de resultats...
authorHuibo SHI <shihuibo19@gmail.com>
Wed, 2 Apr 2014 06:07:51 +0000 (08:07 +0200)
committerHuibo SHI <shihuibo19@gmail.com>
Wed, 2 Apr 2014 06:07:51 +0000 (08:07 +0200)
src/query_tree.ml
src/table.ml

index 1f58ba6..404c750 100644 (file)
@@ -236,8 +236,8 @@ let rec eval_qtree tree start q =
              | Diff -> diff_list tree ls1 ls2
          end
        in
-       let res = Tas.sort_of_list tree res in
-(*     let res = List.sort (Table.compare_node tree) res in*)
+(*     let res = Tas.sort_of_list tree res in
+       let res = List.sort (Table.compare_node tree) res in*)
        QTreeHash.add table_qtree q res;
        compteur := !compteur + (List.length res);
        res
index 0dbad6a..4e81e21 100644 (file)
@@ -211,13 +211,16 @@ and eval_star tree ls lr =
     end
   done;
   let l = Hashtbl.fold (fun k _ acc -> k::acc) h [] in
-  Tas.sort_of_list tree l
-(*  List.sort (compare_node tree) l *)
+  l
+ (*  
+ Tas.sort_of_list tree l 
+  List.sort (compare_node tree) l*)
 
 
 
 let rec eval_axis tree ls a =
   let open Xpath.Ast in
+      let res=
        match a with
            Self -> ls
              
@@ -232,8 +235,8 @@ let rec eval_axis tree ls a =
          | Descendant c -> let lfc = eval_move tree ls Firstchild in                
                            let ls2 = eval_star tree lfc [Firstchild;Nextsibling] in
                            let ldes =
-                           if not c then ls2
-                           else List.merge (compare_node tree) ls2 ls
+                             if not c then ls2
+                             else List.merge (compare_node tree) ls2 ls
                            in
                            ldes
                              
@@ -255,7 +258,7 @@ let rec eval_axis tree ls a =
                            
          | PrecedingSibling -> let ls2 = eval_star tree ls [Prevsibling] in
                                let lps = eval_move tree ls2 Prevsibling in
-                               lps
+                               lps
                                  
          | Preceding -> let ls2 = eval_axis tree ls (Ancestor true) in
                         let ls3 = eval_axis tree ls2 PrecedingSibling in
@@ -266,8 +269,8 @@ let rec eval_axis tree ls a =
                         let ls3 = eval_axis tree ls2 FollowingSibling in
                         let lf = eval_axis tree ls3 (Descendant true) in
                         lf
-
-
+      in
+      List.sort (compare_node tree) res