let pp_to_gzipchan strm oc =
pp_gen (fun s -> Gzip.output oc s 0 (String.length s)) strm
+;;
(** pretty printer to string *)
let pp_to_string strm =
| None -> pp_to_outchan strm stdout
;;
+let pp =
+ let profiler = HExtlib.profile "Xml.pp" in
+ fun ?gzip strm fn ->
+ profiler.HExtlib.profile (pp ?gzip strm) fn
+;;
+
let add_xml_declaration stream =
let box_prefix = "b" in
[<
] stream
>]
+ (* TODO BRRRRR .... *)
+ (** strip first 4 line of a string, used to strip xml declaration and doctype
+ declaration from XML strings generated by Xml.pp_to_string *)
+let strip_xml_headings s =
+ let rec aux n pos =
+ if n = 0
+ then String.sub s pos (String.length s - pos)
+ else aux (n - 1) (String.index_from s pos '\n' + 1)
+ in
+ try
+ aux 4 0
+ with Not_found -> s
+