]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/xml/xml.ml
removed no longer used METAs
[helm.git] / helm / ocaml / xml / xml.ml
index 6d6775c6deeccb4c1f11ce3c9e25e755b8a43aef..f8cc41cbeacb7d3404c9548b9932d9565b8c4262 100644 (file)
@@ -36,6 +36,8 @@
 (*                                                                            *)
 (******************************************************************************)
 
+(* $Id$ *)
+
 
 (* the type token for XML cdata, empty elements and not-empty elements *)
 (* Usage:                                                             *)
@@ -103,6 +105,7 @@ let pp_to_outchan strm oc =
 
 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 =
@@ -140,6 +143,12 @@ let pp ?(gzip=false) strm fn =
     | 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
   [<
@@ -153,3 +162,16 @@ let add_xml_declaration stream =
       ] 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
+