(* $Id$ * ---------------------------------------------------------------------- * *) (* Read a record-list, delete a column, and print it as XML *) open Pxp_types;; open Pxp_document;; open Pxp_yacc;; let delcol col tree = map_tree ~pre: (fun n -> match n # node_type with T_element name when name = col -> raise Skip | _ -> n # orphaned_flat_clone) tree ;; let main() = let column = ref "" in Arg.parse [ "-col", Arg.String (fun s -> column := s), " (last-name|first-name|phone)"; ] (fun _ -> raise (Arg.Bad "Bad usage")) "usage: sort [ options ]"; if !column = "" then ( prerr_endline "Column not specified!"; exit 1; ); if not(List.mem !column ["last-name"; "first-name"; "phone"]) then ( prerr_endline ("Unknown column: " ^ !column); exit 1 ); try let dtd = parse_dtd_entity default_config (from_file "record.dtd") in let tree = parse_content_entity default_config (from_channel stdin) dtd default_spec in print_endline ""; (delcol !column tree) # write (Out_channel stdout) `Enc_iso88591 with x -> prerr_endline(string_of_exn x); exit 1 ;; main();; (* ====================================================================== * History: * * $Log$ * Revision 1.1 2000/11/17 09:57:32 lpadovan * Initial revision * * Revision 1.2 2000/08/24 09:42:52 gerd * Updated a comment. * * Revision 1.1 2000/08/24 09:39:59 gerd * Initial revision. * * *)