At least 30 people, mostly schoolchildren, have been injured in a train crash in the Swiss Alps.

Police said two trains collided in a station in Andermatt, a mountain town in the canton of Uri.

Police have said medical personnel are at the scene.

"No one is in critical condition," a spokeswoman for the regional police in the Swiss canton of Uri.

Police had initially said 27 people had been injured in the incident.

The crash happened shortly before midday as a train, made up of a locomotive and five carriages and carrying around 100 passengers, attempted a manoeuvre at Andermatt station.

The locomotive was supposed to move to a parallel track, to move from the back of the train to the front, and allow the train to head back towards the Alpine resort of Disentis.

A spokesman for the rail company said something had gone wrong and the locomotive had slammed into the carriages.

He said the locomotive had been travelling at a speed of only 15 to 20 km/h and there appeared to be very little material damage.

The regional police and the Swiss Transportation Safety Investigation Board have opened an investigation into the circumstances surrounding the accident.