Jordan Degroot did not appear in court Monday, but the charges were sworn before a Justice of the Peace.
Degroot allegedly attacked a 30-year-old woman, who did not know him, inside the 7-Eleven on Denman Street at Comox Street early Sunday morning.
One witnesses described being woken up by the woman's screaming.
Two men inside the 7-Eleven tackled the suspect, and held him until police arrived.
Outside the convenience store, police and paramedics tried to stem the heavy flow of blood from the woman's upper-body wounds.
The woman was taken to hospital with serious injuries, and police say she is in stable condition Monday.
Degroot is scheduled to appear in court Tuesday.
Court records show that a man of the same age and name as the suspect was charged with attempted murder and convicted of the lesser charge of aggravated assault for an attack with a firearm in 2008, and sentenced to four years in prison.