Exemplo n.º 1
0
static void
xpathctx_finalize (value xpathctxv)
{
  xmlXPathContextPtr xpathctx = Xpathctx_val (xpathctxv);

  if (xpathctx)
    xmlXPathFreeContext (xpathctx);
}
Exemplo n.º 2
0
value
v2v_xml_xpathctx_set_node_ptr (value xpathctxv, value nodev)
{
  CAMLparam2 (xpathctxv, nodev);
  xmlXPathContextPtr xpathctx = Xpathctx_val (xpathctxv);
  xmlNodePtr node = (xmlNodePtr) nodev;

  xpathctx->node = node;

  CAMLreturn (Val_unit);
}
Exemplo n.º 3
0
value
v2v_xml_xpath_register_ns (value xpathctxv, value prefix, value uri)
{
  CAMLparam3 (xpathctxv, prefix, uri);
  xmlXPathContextPtr xpathctx;
  int r;

  xpathctx = Xpathctx_val (xpathctxv);
  r = xmlXPathRegisterNs (xpathctx, BAD_CAST String_val (prefix), BAD_CAST String_val (uri));
  if (r == -1)
      caml_invalid_argument ("xpath_register_ns: unable to register namespace");

  CAMLreturn (Val_unit);
}
Exemplo n.º 4
0
value
v2v_xml_xpath_eval_expression (value xpathctxv, value exprv)
{
  CAMLparam2 (xpathctxv, exprv);
  CAMLlocal1 (xpathobjv);
  xmlXPathContextPtr xpathctx;
  xmlXPathObjectPtr xpathobj;

  xpathctx = Xpathctx_val (xpathctxv);
  xpathobj = xmlXPathEvalExpression (BAD_CAST String_val (exprv), xpathctx);
  if (xpathobj == NULL)
    caml_invalid_argument ("xpath_eval_expression: unable to evaluate XPath expression");

  xpathobjv = caml_alloc_custom (&xpathobj_custom_operations,
                                 sizeof (xmlXPathObjectPtr), 0, 1);
  Xpathobj_val (xpathobjv) = xpathobj;

  CAMLreturn (xpathobjv);
}
Exemplo n.º 5
0
value
v2v_xml_xpath_new_context (value docv)
{
  CAMLparam1 (docv);
  CAMLlocal1 (xpathctxv);
  xmlDocPtr doc;
  xmlXPathContextPtr xpathctx;

  doc = Doc_val (docv);
  xpathctx = xmlXPathNewContext (doc);
  if (xpathctx == NULL)
    caml_invalid_argument ("xpath_new_context: unable to create xmlXPathNewContext");

  xpathctxv = caml_alloc_custom (&xpathctx_custom_operations,
                                 sizeof (xmlXPathContextPtr), 0, 1);
  Xpathctx_val (xpathctxv) = xpathctx;

  CAMLreturn (xpathctxv);
}