Мы создаем сценарий для преобразования определенных файлов XHTML в файлы Word, однако способ, которым файлы Word и файлы HTML обрабатывают изменения форматирования и весьма различаются.
Например, у нас может быть разделследующим образом:
<p>Title
<ol>
<li><p>List 1</p></li>
<li><p>List 2</p></li>
</ol>
Additional Information</p>
Это изменяется между файлами, поскольку некоторые из них являются устаревшими файлами, написанными до определенных стандартов, и каждый файл был написан разными людьми, создавая несоответствия.Многие файлы сильно вложены, а многие нет.Проблема возникает при обнаружении того, когда файл вложен, поскольку, хотя он может прекрасно отображаться в веб-браузере, HTML-документ, эквивалентный документу Word, должен быть отформатирован аналогично следующему, чтобы его можно было легко преобразовать в формат XML, используемый Word (с использованием предыдущегопример):
<p>Title</p>
<li>List 1</li>
<li>List 2</li>
<p>Addition Information</p>
Как документ Word, использующий стандарты OpenXML, в значительной степени опирается на разделы формата, явно начинающиеся и заканчивающиеся до создания нового раздела.К сожалению, это применимо везде, даже выделенные жирным шрифтом или курсивом.
Я уже создал небольшое регулярное выражение для преобразования списков в нужный формат, найдя тип списка, удалив теги p и преобразовавтег li в тег oli для упорядоченных списков и uli для неформатированных списков.Это, в свою очередь, затем преобразуется в правильное форматирование XML для документа Word.
Проблема, с которой я сталкиваюсь, заключается в том, что гораздо сложнее обнаружить, например, вложенный тег ap, как в приведенном выше примере:и если да, то для добавления нового закрывающего тега p перед тегом li и нового открывающего тега p после списка для создания не вложенных линейных тегов, которые мы ищем.
Мой вопросесли кто-то знает, есть ли способ сделать это относительно просто, например, с помощью регулярного выражения или чего-то в этом роде, или если вообще будет проще вернуться ко всем устаревшим файлам и очистить их до текущих стандартов, чтобы сделатьони совместимы.(Это не является предпочтительным, так как у нас есть много этих файлов, и мы не хотим, чтобы какие-либо несоответствия были пропущены, создавая неправильно отформатированные документы Word, прежде чем мы сможем их перехватить).
Как правило, мы не используем большезатем теги p, ol / ul / li, em, strong, table / th / tr / td и a.Я также нашел некоторый текст, который не находится внутри каких-либо тегов HTML, который было бы предпочтительнее заключать в тег ap.
Примечание: PDF не является приемлемым вариантом, поскольку мы ищем простоту использованияи ограничения размера скрипта обычно запрещают это.