Several retailers said Christmas sales had seen a boost despite cold weather, rising costs and rail strikes.