/* * call-seq: * XML::Node.initialize(name, content = nil, namespace = nil) -> XML::Node * * Creates a new element with the specified name, content and * namespace. The content and namespace may be nil. */ static VALUE rxml_node_initialize(int argc, VALUE *argv, VALUE self) { VALUE name; VALUE content; VALUE ns; xmlNodePtr xnode = NULL; xmlNsPtr xns = NULL; rb_scan_args(argc, argv, "12", &name, &content, &ns); name = rb_obj_as_string(name); if (!NIL_P(ns)) Data_Get_Struct(ns, xmlNs, xns); xnode = xmlNewNode(xns, (xmlChar*) StringValuePtr(name)); if (xnode == NULL) rxml_raise(&xmlLastError); /* Link the Ruby object to the libxml object and vice-versa. */ xnode->_private = (void*) self; DATA_PTR(self) = xnode; if (!NIL_P(content)) rxml_node_content_set(self, content); return self; }
/* * call-seq: * XML::Node.initialize(name, content = nil, namespace = nil) -> XML::Node * * Creates a new element with the specified name, content and * namespace. The content and namespace may be nil. */ static VALUE rxml_node_initialize(int argc, VALUE *argv, VALUE self) { VALUE name; VALUE content; VALUE ns; xmlNodePtr xnode = NULL; xmlNsPtr xns = NULL; rb_scan_args(argc, argv, "12", &name, &content, &ns); name = check_string_or_symbol(name); if (!NIL_P(ns)) Data_Get_Struct(ns, xmlNs, xns); xnode = xmlNewNode(xns, (xmlChar*) StringValuePtr(name)); xnode->_private = (void*) self; DATA_PTR( self) = xnode; if (!NIL_P(content)) rxml_node_content_set(self, content); return self; }