1 (******************************************************************************)
2 (* SXSI : XPath evaluator *)
3 (* Kim Nguyen (Kim.Nguyen@nicta.com.au) *)
4 (* Copyright NICTA 2008 *)
5 (* Distributed under the terms of the LGPL (see LICENCE) *)
6 (******************************************************************************)
10 if Tree.Binary.is_node v
12 let tag = Tree.Binary.tag v
14 let acc = aux (Ptset.add tag acc) (Tree.Binary.first_child v)
16 aux (Ptset.add tag acc) (Tree.Binary.next_sibling v)
23 if Array.length (Sys.argv) <> 2
26 Printf.printf "usage: %s file.xml\n" (Sys.argv.(0));
33 Tree.Binary.parse_xml_uri Sys.argv.(1)
36 Printf.printf "Error parsing document\n";
39 let _ = Tag.init (Tree.Binary.tag_pool doc)
41 let tags = (Ptset.add (Tag.tag "foo") (collect_tags doc))
44 let _ = Tree.Binary.test_xml_tree Format.std_formatter tags doc