/*
 * 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 ;
}