Есть ли быстрый способ изменить несколько ссылок в файле HTML?
У меня есть HTML-файл, содержащий код для карты изображений с более чем 200 ссылками, например:
<area shape="RECT" coords="410, 7, 438, 35" href="/ItemDetails.jsp?item=os_landranger_1"/>
Проблема в том, что настоящие ссылки неверны: мне нужно заменить их правильными URL-адресами, которые получены из названия продукта и ссылочного номера, которые есть в файле CSV.
По сути, мне нужен специализированный Find and Replace, который прочитает первую ссылку, получит заголовок и ссылку. нет. из CSV и введите их в HTML в правильном формате (то есть с пробелами, замененными на _), прежде чем переходить к следующему, и так далее. Ссылки должны выходить на другой конец, как это:
<area shape="RECT" coords="410, 7, 438, 35" href="product/1_-_Shetland_%C2%96_Yell%2C_Unst_and_Fetlar_9780319228074" />
В этом случае заголовок в CSV будет выглядеть следующим образом: "1 - Шетланд - Йелл, Унст и Фетлар" и реф. нет. будет 9780319228074
Есть ли способ сделать это, желательно бесплатно?
РЕДАКТИРОВАТЬ:
Мне удалось сделать это с помощью Excel. Сначала я импортировал теги в пустую книгу как CSV, указав Excel использовать "в качестве разделителя". Затем я импортировал список заголовков в новый столбец, а затем восстановил тег в пустой ячейке с помощью оператора &, используя список заголовков для замените старый URL. Немного поиска и замены, чтобы преобразовать запятые и амперсанды в HTML-коды, затем скопировать и вставить формулу в остальные строки, и вуаля, успех.
Спасибо всем, кто ответил.
2 ответа
Это довольно сложный поиск и замена. Лично я не знаю ни одного редактора, который мог бы сделать это. Как ссылки на странице теперь соотносятся с файлом CSV?
Это легко сделать в скрипте. Его нетрудно собрать в Perl-скрипт (или Python, что вы предпочитаете). У вас есть навыки написания сценариев или кто-нибудь знает?
Если они используют общую систему упорядочения (или csv можно упорядочить в соответствии с тем, что есть в текущем HTML-файле), вы можете использовать find и replace для замены href на ';', а затем использовать текст для столбцов, чтобы получить =.. Если ваш порядок такой же, то вы можете просто заменить весь столбец (не забудьте добавить /> в конец строки и прочитать часть href. Если нет схемы упорядочения, основанной на том, что я вижу (в Приведенный выше образец), вы ничего не можете сделать.