def change_catalog catalog, id, valuehash
      catalog_exists? catalog
      if @report.at_css("#{catalog}").at("[@id='#{id}']")
        valuehash.each do |key, value|
          @report.at_css("#{catalog}").at("[@id='#{id}']")["#{key}"]= value
        end
      else
        cat = @report.at_css("#{catalog}")
        newentry = Nokogiri::XML::Node.new("#{catalog.to_s.gsub(/s?_catalog/,'')}", self.report)
        newentry["id"] = id
        valuehash.each do |key, value|
          newentry["#{key}"] = value
        end
        cat << newentry
      end
    end
def change_catalog catalog, id, valuehash
      catalog_exists? catalog
      if @report.at_css("#{catalog}").at("[@id='#{id}']")
        valuehash.each do |key, value|
          @report.at_css("#{catalog}").at("[@id='#{id}']")["#{key}"]= value
        end
      else
        cat = @report.at_css("#{catalog}")
        newentry = Nokogiri::XML::Node.new("#{catalog.to_s.gsub(/s?_catalog/,'')}", self.report)
        newentry["id"] = id
        valuehash.each do |key, value|
          newentry["#{key}"] = value
        end
        cat << newentry
      end
    end
Change a catalog
 @param [String] catalog Name of the catalog - One of {OpenTox::QMRFReport::CATALOGS CATALOGS}.
 @param [String] id Single entry node in the catalog e.G.: "<software contact='mycontact@mydomain.dom' description="My QSAR Software " id="software_catalog_2" name="MySoftware" number="" url="https://mydomain.dom"/>
 @param [Hash] valuehash Key-Value Hash with attributes for a single catalog node
 @return [Error]  returns Error message if fails