    /*
     * call-seq:
     *  encode_special_chars(string)
     *
     * Encode any special characters in +string+
     */
    static VALUE encode_special_chars(VALUE self, VALUE string)
    {
      xmlNodePtr node;
      Data_Get_Struct(self, xmlNode, node);
      xmlChar * encoded = xmlEncodeSpecialChars(
          node->doc,
          (const xmlChar *)StringValuePtr(string)
      );

      VALUE encoded_str = NOKOGIRI_STR_NEW2(encoded, node->doc->encoding);
      xmlFree(encoded);

      return encoded_str;
    }