Я перемещаю веб-сайт с одной платформы на другую. Часть требований состоит в том, чтобы поддерживать URL, которые могут быть добавлены в закладки, что я буду делать с правилами перезаписи.
Поскольку старая система представляет собой беспорядок, я должен проявить особую осторожность и убедиться, что все ссылки работают. Поскольку страниц много, нереально сделать это вручную - мне нужно автоматизировать процесс. Вверху есть главное меню, под ним подменю и боковое меню, но это может быть неверно для любой случайной страницы.
В качестве первого шага я собираюсь выполнить некоторый анализ и создать упрощенную версию сайта. В этой упрощенной версии я беспокоюсь только о ссылках.
Итак, что я хотел бы сделать: разобрать страницу и выкинуть большую часть html, за исключением любой ссылки (внутренней или внешней). Если набор ссылок находится в определенном HTML-теге (скажем, <ul>
, который действует как меню, или <div>
, который действует как область содержимого, я бы хотел сохранить это вложение тегов html.
В основном я хочу закончить так:
index.html
<html>
<body>
<tag>
<a href='page2.html'>Menu Item 1</a>
<a href='page3.html'>Menu Item 2</a>
<a href='page4.html'>Menu Item 3</a>
</tag>
<tag>
<a href='page5.html'>SubMenu Item 4</a>
<a href='page6.html'>SubMenu Item 5</a>
<a href='page7.html'>SubMenu Item 6</a>
</tag>
<tag>
<a href='page8.html'>Side Menu Item 1</a>
<a href='page9.html'>Side Menu Item 2</a>
<a href='page10.html'>Side Menu Item 3</a>
</tag>
<tag>
<a href='site.com'>Content External link</a>
<a href='about_us.html'>Content Internal Link</a>
</tag>
</body>
</html>
Где <tag>
может быть любым html-тегом блочного стиля - не обязательно должен быть первым тегом, который разделяют ссылки.
Скрипт / программа не должны быть достаточно умными, чтобы знать, «Это меню» или «Это панель навигации»; если он может группировать ссылки в первом HTML-теге, в котором они все существуют, этого будет достаточно.
Есть ли сценарий или часть программного обеспечения, которая уже делает это? Или я напишу свой собственный?
Если я напишу свое собственное, как мне выполнить html-разбор? Я слышал, что регулярные выражения не являются ответом, так как они не могут отслеживать состояние и, следовательно, не могут знать о структуре вложенных тегов.