You don't need and you don't want spans that do nothing as all they do is make the size of the XML larger and that could be an issue if it's too large. Also, those non-breaking spaces can go too. They don't actually do anything in this case.

I don't think you can have a <p> inside a <div> as they are both paragraph level elements.

Yes, you can. A <div> can contain block or inline elements. The restriction preventing block-level content applies only to <p>. I think I pasted the relevant part of the spec not long ago... here it is.

Quote:

Originally Posted by JSWolf

You don't need and you don't want spans that do nothing

But they do something. They are matched by the "span.footnote span" and "span.footnote span+span" selectors.