]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/minidom/minidom.c
ocaml 3.09 transition
[helm.git] / helm / minidom / minidom.c
index 5d380cce9c91beecd54862e96e6cad4422f9b13e..93cae440dcddbcc67d396fe29c99a587332524ed 100644 (file)
@@ -23,8 +23,8 @@
 
 #include <config.h>
 #include <glib.h>
-#include <parser.h>
-#include <parserInternals.h>
+#include <libxml/parser.h>
+#include <libxml/parserInternals.h>
 
 #include "minidom.h"
 
@@ -53,7 +53,6 @@ mdom_string_free(mDOMStringRef s)
 mDOMDocRef
 mdom_load(const char* file_name, gboolean subst, mDOMEntityResolver entity_resolver)
 {
-  xmlSAXHandler sax;
   xmlParserCtxtPtr ctxt;
   mDOMDocRef doc;
 
@@ -61,18 +60,14 @@ mdom_load(const char* file_name, gboolean subst, mDOMEntityResolver entity_resol
 
   xmlSubstituteEntitiesDefault(subst);
   
-  sax = xmlDefaultSAXHandler;
-  sax.getEntity = entity_resolver;
-  
   ctxt = xmlCreateFileParserCtxt(file_name);
   if (ctxt == NULL) return NULL;
-  
-  ctxt->sax = &sax;
+  g_assert(ctxt->sax != NULL);
+  ctxt->sax->getEntity = entity_resolver;
   
   xmlParseDocument(ctxt);
   
   doc = ctxt->myDoc;
-  ctxt->sax = NULL;
   xmlFreeParserCtxt(ctxt);
 
   return doc;
@@ -263,6 +258,19 @@ mdom_node_has_attribute(mDOMNodeRef node, mDOMConstStringRef name)
 #endif /* HAVE_LIBXML2 */
 }
 
+gboolean
+mdom_node_has_attribute_ns(mDOMNodeRef node, mDOMConstStringRef name, mDOMConstStringRef uri)
+{
+  g_return_val_if_fail(node != NULL, FALSE);
+  g_return_val_if_fail(name != NULL, FALSE);
+  g_return_val_if_fail(uri != NULL, FALSE);
+#ifdef HAVE_LIBXML2
+  return (xmlHasNsProp(node, name, uri) != NULL) ? TRUE : FALSE;
+#else
+  return FALSE;
+#endif /* HAVE_LIBXML2 */
+}
+
 mDOMStringRef
 mdom_node_get_content(mDOMNodeRef node)
 {