US retail giant Wal-Mart said it had taken several brands of children’s clothes off its shelves in China after they were found to contain a cancer-causing dye.