Please beware of booking with Iberia. The website seems straightforward and the rates are good. However, after booking with them 5 months in advance to get my daughters from Madrid to Seville after their international flight from the States, Iberia cancelled the flight, sent a notice in Spanish, and their system would not allow me to change the flight online (the new flight leaves 6 hours later causing them to miss another connection). I spent $20 to get international calling for my cell, spent 15 mins on the phone yesterday to be told to call back today. Same drill today - to be told "this is a non-refundable ticket and it doesn't matter that we cancelled the flight. take it or leave it."
Now booking the train, which is what I should have done in the first place, just $170 bucks poorer now.
Unless you speak Spanish, are booking at the last minute, and care to risk losing your investment, I'd advise you to do the same.
Happy traveling.