and compile_single_path_rev p =
match p with
- | Absolute p | Relative p -> compile_step_list_rev (List.rev p)
+ | Absolute p | Relative p -> compile_step_list_rev p (*(List.rev p)*)
and compile_step_list_rev p = match p with
| [] -> Dom (*assert false*) (*on fait rien , mais comment signifer ???*)
else diff_list t ll1 ll2
-let do_debug = ref true
+let do_debug = ref false
let debug tree q l =
if !do_debug then begin
parametres : tree l'arbre xml
n un noeud
m move
- retour :un noeud qui correspond à la relation r
+ retour :un noeud qui correspond à¥\86 la relation r
*)
let print_node_list tree l =
List.iter (fun node ->
- Naive_tree.print_xml stdout tree node
- ) l;
- print_newline()
+ Naive_tree.print_xml stdout tree node;
+ print_newline()
+ ) l
let rec print_query_tree fmt q =
match q with
parametres : tree l'arbre xml
ls l'ensemble de noeuds
m move
- retour : l'ensemble de noeuds qui correspondent à la relation r
+ retour : l'ensemble de noeuds qui correspondent à¥\86 la relation r
*)
parametres : tree l'arbre xml
ls l'ensemble de noeuds
m move
- retour : l'ensemble de noeuds qui correspondent à des relations lr
+ retour : l'ensemble de noeuds qui correspondent à¥\86 des relations lr
*)
and eval_star tree ls lr =
parametres : tree l'arbre xml
ls l'ensemble de noeuds
a axis
- retour : l'ensemble de noeuds qui correspondent à l'axe
+ retour : l'ensemble de noeuds qui correspondent à¥\86 l'axe
*)
let keep_elements t l =
let rec eval_axis tree ls a =
let open Xpath.Ast in
let res =
- (* let ls = List.sort ( fun a b -> compare (Naive_tree.preorder tree a ) (Naive_tree.preorder tree b ) ) ls in écrir dans la log!!!!!*)
+ (* let ls = List.sort ( fun a b -> compare (Naive_tree.preorder tree a ) (Naive_tree.preorder tree b ) ) ls in ़crir dans la log!!!!!*)
match a with
Self -> ls
let query_tree_list =
List.map (fun query -> compile_xpath query) queries
in
- let cpt = ref 0 in
-
- List.iter ( fun q ->
-
+ List.iter ( fun q ->
let res = eval_query_tree doc [ (Naive_tree.root doc) ] q in
+ print_string "<xml_result num=\"1\" >\n";
print_node_list doc res;
- Format.printf "---------------Fin %i\n!" !cpt;
- incr cpt;
+ print_string "</xml_result>\n"
) query_tree_list ;
(* let output =