Method: Nokogiri::XML::Node#dup
- Defined in:
- ext/nokogiri/xml_node.c
#dup ⇒ Object Also known as: clone
Copy this node. An optional depth may be passed in, but it defaults to a deep copy. 0 is a shallow copy, 1 is a deep copy.
539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 |
# File 'ext/nokogiri/xml_node.c', line 539
static VALUE duplicate_node(int argc, VALUE *argv, VALUE self)
{
VALUE level;
xmlNodePtr node, dup;
if(rb_scan_args(argc, argv, "01", &level) == 0) {
level = INT2NUM((long)1);
}
Data_Get_Struct(self, xmlNode, node);
dup = xmlDocCopyNode(node, node->doc, (int)NUM2INT(level));
if(dup == NULL) { return Qnil; }
nokogiri_root_node(dup);
return Nokogiri_wrap_xml_node(rb_obj_class(self), dup);
}
|