(***********************************************************************)
-(** use: xml_file "XPath querie"
- or : xml_file -f XPath_querie_file
- only the first line of XPath_querie_file is read
+(** use: [./test xml_file "XPath querie"]
+ or : [./test xml_file -f XPath_querie_file]
+ only the first line of [XPath_querie_file] is read
*)
open Format
let query = query () in
let asta = build_asta query in
let run = compute_run doc asta in
+ let selected_nodes = Run.selected_nodes doc asta in
+ Format.pp_set_margin err_formatter 80;
fprintf err_formatter "@[<v 0>##### Query #####@. %a@]\n"
XPath.Ast.print query;
output_string stderr "\n##### Doc #####\n";
output_string stderr "\n";
Asta.print err_formatter asta;
Run.print err_formatter run;
+ output_string stderr "\n # Doc with positions: \n";
+ Tree.print_xml_preorder stderr doc (Tree.root doc);
+ let rec print_selec fmt l = match l with
+ | [x] -> fprintf fmt "%s" (string_of_int x)
+ | x :: tl -> fprintf fmt "%s" ((string_of_int x)^"; ");print_selec fmt tl
+ | [] -> fprintf fmt "%s" "ΓΈ" in
+ fprintf err_formatter "@.@. # Selected nodes: {%a}@."
+ print_selec selected_nodes;
exit 0