So I finished pulling the nasty carpet out of the XJ the other day. The driver side floor is perfect, but darned if I didn't find a bunch of rust on the passenger side. The carpet went straight in the trash. I'd never reuse it. It was really nasty.
The rust went all the way through the metal in a few small places. It was not so bad that I needed to replace the whole floor pan, so I went to Home Depot and bought a few small pieces of sheet metal, trimmed them to size to cover the holes, and riveted them in place.
Here's the floor with the metal patches riveted in over an initial coat of Chassis Saver paint (POR-15 is a similar product).
I spent a couple hours with a wire brush on my die grinder and then slathered on another thick coat of Chassis Saver paint all over the floor and right over the patches I riveted in. It should neutralize the rust and keep it from progressing.
I then covered the whole floor with Desert Tan Monstaliner (truck bed floor liner) and it looks pretty good. It took an entire gallon to do the whole vehicle.
I used Duplicolor plastic and vinyl paint to recolor the interior from gray to black. It worked pretty well. In this photo you can see the original gray color on the door panel.
The fabric soaks up a LOT of paint and it leaves it feeling a little crispy, but overall it looks ok. I did the seats as well and the color has held up for a while now. It might need to be re-done every year or two if you sit on them a lot.