    /*
     * call-seq:
     *  to_a
     *
     * Return this list as an Array
     */
    static VALUE to_array(VALUE self, VALUE rb_node)
    {
      xmlNodeSetPtr set;
      Data_Get_Struct(self, xmlNodeSet, set);

      VALUE *elts = calloc((size_t)set->nodeNr, sizeof(VALUE *));
      int i;
      for(i = 0; i < set->nodeNr; i++) {
        if(set->nodeTab[i]->_private) {
          elts[i] = (VALUE)set->nodeTab[i]->_private;
        } else {
          elts[i] = Nokogiri_wrap_xml_node(Qnil, set->nodeTab[i]);
        }
      }

      VALUE list = rb_ary_new4(set->nodeNr, elts);

      free(elts);

      return list;
    }