Staal clutched his left knee and was in obvious pain after Edler skated into the Sweden zone and clipped Staal's knee at 15:52 of the first period.
Staal was trying to corral a rebound on his backhand after his initial shot was stopped by Sweden goaltender Jhonas Enroth.
Edler, who plays for the NHL's Vancouver Canucks, was assessed a five-minute major for kneeing and a game misconduct on the play.
He threw his stick in anger as he left the ice.
Staal, a star with the NHL's Carolina Hurricanes and the only member of Canada's 2010 Olympic team in Stockholm, has three assists at the tournament.
Staal's brother Marc also suffered a scary injury this season when he was hit in the eye with a puck on March 3.