/*
* call-seq:
* delete(node)
*
* Delete +node+ from the Nodeset, if it is a member. Returns the deleted node
* if found, otherwise returns nil.
*/
static VALUE delete(VALUE self, VALUE rb_node)
{
xmlNodeSetPtr node_set ;
xmlNodePtr node ;
if(! rb_funcall(rb_node, rb_intern("is_a?"), 1, cNokogiriXmlNode))
rb_raise(rb_eArgError, "node must be a Nokogiri::XML::Node");
Data_Get_Struct(self, xmlNodeSet, node_set);
Data_Get_Struct(rb_node, xmlNode, node);
if (xmlXPathNodeSetContains(node_set, node)) {
xmlXPathNodeSetDel(node_set, node);
return rb_node ;
}
return Qnil ;
}