We were in Italy and bought chocolate ice-creams which my husband almost immediately managed to drip down his cream shirt. In desperation, we went into a nearby bar, hoping to ask to use the loo to try and put cold water on the stain. Instead, the barman whizzed out a bottle of sparkling water and gently poured some on the stain. In a matter of moments, the chocolate ice-cream stain vanished. It was as if by magic.
I have not had cause to try this method again but if one is on the move (or even not), this may be a solution (presuming that is, that one can find a handsome Italian helpful barman!).