]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/DEVEL/gdome_xslt/C/gdome_xslt/gdome_xslt.c
- added saveResultTo{Filename,File,Fd}
[helm.git] / helm / DEVEL / gdome_xslt / C / gdome_xslt / gdome_xslt.c
index d3163a4fab29781118b896dc4a8bd357897b9093..3c5dc42e2151670a5be31fa2211dc96d9e072b9f 100644 (file)
@@ -5,7 +5,9 @@
  * The code is largely based on the code of T.J. Mather's XML::GDOME::XSLT
  * Perl module (http://kobesearch.cpan.org/search?dist=XML-GDOME-XSLT)
  *
- * Copyright (C) 2002 Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>
+ * Copyright (C) 2002:
+ *     Claudio Sacerdoti Coen          <sacerdot@cs.unibo.it>
+ *     Stefano Zacchiroli              <zack@cs.unibo.it>
  * 
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -21,7 +23,7 @@
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
- * For more information, please send an email to <sacerdot@cs.unibo.it>
+ * For more information, please send an email to {sacerdot,zack}@cs.unibo.it
  */
 
 #include <stdio.h>
@@ -31,6 +33,7 @@
 #include <libxslt/xsltutils.h>
 #include <libxslt/transform.h>
 #include <libxslt/imports.h>
+#include "gdome_xslt.h"
 
 // Begin of Gdome internals exposed
 typedef struct _Gdome_xml_Document Gdome_xml_Document;
@@ -96,3 +99,56 @@ GdomeDocument* applyStylesheet(GdomeDocument* source, xsltStylesheetPtr style_li
 
    return gdome_of_libxml(output_libxml);
 }
+
+/***************** serialization functions *****************/
+
+int            saveResultToFilename    (const char* name,
+                                        GdomeDocument* result,
+                                        xsltStylesheetPtr style_libxslt,
+                                        int compression)
+{
+       xmlDocPtr result_libxml;
+
+       if (result == NULL) return -1;
+       result_libxml = libxml_of_gdome(result);
+
+       xsltSetGenericDebugFunc(NULL, NULL);
+
+       return xsltSaveResultToFilename(name,
+                                       result_libxml,
+                                       style_libxslt,
+                                       compression);
+}
+
+int            saveResultToFile        (FILE* file,
+                                        GdomeDocument* result,
+                                        xsltStylesheetPtr style_libxslt)
+{
+       xmlDocPtr result_libxml;
+
+       if (result == NULL) return -1;
+       result_libxml = libxml_of_gdome(result);
+
+       xsltSetGenericDebugFunc(NULL, NULL);
+
+       return xsltSaveResultToFile(file,
+                                   result_libxml,
+                                   style_libxslt);
+}
+
+int            saveResultToFd          (int fd,
+                                        GdomeDocument* result,
+                                        xsltStylesheetPtr style_libxslt)
+{
+       xmlDocPtr result_libxml;
+
+       if (result == NULL) return -1;
+       result_libxml = libxml_of_gdome(result);
+
+       xsltSetGenericDebugFunc(NULL, NULL);
+
+       return xsltSaveResultToFd(fd,
+                                 result_libxml,
+                                 style_libxslt);
+}
+