/* * call-seq: * to_xml * * Returns this node as XML */ static VALUE to_xml(int argc, VALUE *argv, VALUE self) { xmlBufferPtr buf ; xmlNodePtr node ; VALUE xml, level; if(rb_scan_args(argc, argv, "01", &level) == 0) level = INT2NUM(1); Check_Type(level, T_FIXNUM); Data_Get_Struct(self, xmlNode, node); buf = xmlBufferCreate() ; xmlNodeDump(buf, node->doc, node, 2, NUM2INT(level)); xml = rb_str_new2((char*)buf->content); xmlBufferFree(buf); return xml ; }