module X = Ocamlduce.Load let pxp_config = { Pxp_types.default_config with Pxp_types.encoding = `Enc_utf8; store_element_positions = false; drop_ignorable_whitespace = true } let from_source ?ns src = let mgr = Pxp_ev_parser.create_entity_manager pxp_config src in let loader = X.make ?ns () in Pxp_ev_parser.process_entity pxp_config (`Entry_document[`Extend_dtd_fully]) mgr (function | Pxp_types.E_start_tag (name,att,_,_) -> X.start_elem loader name att | Pxp_types.E_char_data data -> X.text loader data | Pxp_types.E_end_tag (_,_) -> X.end_elem loader () | _ -> ()); X.get loader let from_string ?ns s = from_source ?ns (Pxp_types.from_string s) let from_file ?ns fn = from_source ?ns (Pxp_types.from_file fn)