]> gitweb.michael.orlitzky.com - dead/htsn-import.git/blobdiff - src/Xml.hs
Use the TSN.Team type in TSN.XML.JFile.
[dead/htsn-import.git] / src / Xml.hs
index 3f7bb62cae43fc0cb8dbe42bf54741e448980fbd..e7d47a12c319617d9a70c8e7d8f6a8cead7eae81 100644 (file)
@@ -10,7 +10,9 @@ module Xml (
   ToDb(..),
   parse_opts,
   pickle_unpickle,
-  unpickleable )
+  unpickleable,
+  unsafe_read_document,
+  unsafe_unpickle )
 where
 
 -- System imports.
@@ -21,6 +23,7 @@ import Text.XML.HXT.Core (
   (/>),
   PU,
   SysConfigList,
+  XmlTree,
   isElem,
   no,
   readDocument,
@@ -29,6 +32,7 @@ import Text.XML.HXT.Core (
   withSubstDTDEntities,
   withValidate,
   xpickleVal,
+  xunpickleDocument,
   xunpickleVal,
   yes )
 
@@ -143,3 +147,19 @@ unpickleable filepath unpickler = do
     try_unpickle = runX $ readDocument parse_opts filepath
                           >>>
                           xunpickleVal unpickler
+
+
+-- | Unpickle from a 'FilePath' using the given pickler. Explode if it
+--   doesn't work.
+--
+unsafe_unpickle :: FilePath -> PU a -> IO a
+unsafe_unpickle filepath unpickler =
+  fmap head $ runX $ xunpickleDocument unpickler parse_opts filepath
+
+
+-- | Read an XML document from a 'FilePath' into an XmlTree. Explode if it
+--   doesn't work.
+--
+unsafe_read_document :: FilePath -> IO XmlTree
+unsafe_read_document filepath =
+  fmap head $ runX $ readDocument parse_opts filepath