В процессе создания таблицы стилей для преобразования старых транскрипций LoC книг, в которых для форматирования использовался устаревший DTD SGML, я столкнулся с препятствием в следующей ситуации:
В преобразованных файлах XML есть несколько строк текста, подобных следующему:
<p> Text on left <hsep></hsep> Text on right </p>
hsep существенно выталкивает оставшийся текст, чтобы он выровнялся по правому краю. К сожалению, я не знаю ни одного способа конвертировать это в HTML, просто конвертируя теги, так как HTML не имеет ничего общего с сомнительными взломами CSS. Я думаю, что было бы более полезно иметь возможность преобразовать это в нечто вроде:
<p> Text on left <span class="right">Text on right</span> </p>
Однако я не уверен, как это сделать, поскольку для этого потребуется, чтобы в элементе <p>
я определил, есть ли <hsep>
, а затем создал тег, окружающий оставшийся текст, основываясь на его наличии , также применяя шаблоны к любым элементам, которые могут быть там. Я не думаю, что случаи, когда у меня есть что-то вроде
<p> Text a <em> Text b <hsep></hsep> Text c </em> </p>
встречаются часто или даже присутствуют, поэтому я не думаю, что это создаст проблему, но могут быть такие ситуации, как:
<p> <em> Text a Text b <hsep></hsep> Text c </em> </p>
Я могу придумать сложные, ужасные способы сделать это с помощью регулярных выражений, но я надеюсь, что есть не ужасный способ.