Download iPhoto Library Manager and use its rebuild function. This will create a new library based on data in the albumdata.xml file. Not everything will be brought over - no slideshows, books or calendars, for instance - but it should get all your albums and keywords back. Because this process creates an entirely new library and leaves your old one untouched, it is non-destructive, and if you're not happy with the results you can simply return to your old one.
Terence, you are a massive help! I thought I had to pay for that software, didn't realise the free version did what I need. Thank you very much!
Luckily, I didn't have any slideshows/books/calendars, BUT I noticed that it didn't seem to read all the photos. As far as I can see right now, it hasn't imported any of the photos imported after March 2010, is this normal? The photos imported after this date were actually in the Originals folder so I'm importing them back in that way. I might be best off going through them all to make sure everything is there which will take forever. I've kept a backup of the old library file just in case.
When Library Manager rebuilds a library it does so by referencing a file within the damaged Library. This file is used by other apps when sharing the Library, and is created by the database. If this file is missing mention of some files then Library Manager does not know to look for them, so they will be missed in the rebuild.