Hi, Matt L, and welcome to TA. Situations like yours always make me wonder if the poster likes good news or bad news first! I'll do the bad - you are very, very unlikely to be able to get a room in Zermatt for less than a full week over the Christmas holidays as that is the very high season. First, there is usually a 7 night minimum and some hotels have a 14 night minimum! Then there's the timing - most hotels are fully booked by now.
You may have a bit of luck, however, because the world economy has helped out a bit for folks like you and bookings are down just a bit. I suggest you move quickly - I just went to the Zermatt website and there is one 4* hotel that will have rooms from the 22nd to the 26th. The hotel is fine (Pollux) The price over Christmas is about $3200 total per room for b & b. There is a 2* available as well - I don't know it at all but you can be certain it will be clean and comfortable but plain - it would be about $1400 per room. I would get in touch asap if you want rooms in Zermatt.
The Zermatt website is
Of course you might find something on one of the booking web sites as well.
As you are not skiers (at least not on this trip), you might want to think about some place where the prices aren't geared toward skiers! The problem might be finding a quaint village with anything open for meals, etc. as Christmas is a private holiday and the Swiss celebrate it at home with friends and family usually. A town or smaller city would be better. The Swiss Tourism office has a great website where you can find a lot of choices and it's in English
Take a look at Lucerne, Thun, Spiez - they are all great possibilities. You might see about Lauterbrunnen but it's a bit more difficult to get to and is a place to stay for skiing.
You can get all the train timetables and fares on the Swiss Rail website in English
Hopefully some others will pile in here with some ideas. And, you know, there's not much wrong with staying in Basel - it's a lovely and charming small city!