CSS может что-то с этим сделать, особенно в тех браузерах, которые реализуют функции, необходимые для получения значения атрибута в качестве значения для правила содержимого.
Однако, это зайдет так далеко (в значительной степени, насколько вы могли бы пойти, если бы выше были какие-то новые HTML-элементы, и вы использовали CSS для этого, это по сути то же самое).
Использование XSLT для создания XHTML является гораздо более разумным решением. Настолько разумно, что я полагаю, что вы не знаете XSLT просто из-за того, что он не встречался с вами раньше, чем CSS. Это хороший декларативный язык для преобразования одной формы XML в другую (выходные данные не обязательно должны быть XML, но часто это так - я просто добавляю это выражение в скобках, чтобы исключить человека, который добавит «выходные данные не «не должно быть XML» в качестве комментария к этому сообщению;)
Третий вариант - просто проанализировать его на выбранном вами языке, просто потому, что это, вероятно, будет проще, чем один раз, чем изучение XSLT. Однако изучение XSLT, скорее всего, окупит усилия довольно быстро, так что это мое реальное предложение.