powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Есть String с html-документом. Как изменить имя сервера во всех линках?
6 сообщений из 6, страница 1 из 1
Есть String с html-документом. Как изменить имя сервера во всех линках?
    #33666453
Vetal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Есть String, в котором содержится html-документ. В этом документе есть картинки, пути к которым относительные. Мне нужно во всех этих линках дописать имя сервера.

Например. Есть html-документ:
Код: plaintext
<html>blablabla<img src="/images/img001.jpg">blablabla<html>

Мне нужно в ссылке на каждую картинку добавить имя сервера. Чтобы было
Код: plaintext
<html>blablabla<img src="http://www.myserver.com/images/img001.jpg">blablabla<html>

Понятно, что путей для решения такой задачи много...

Но как решить мою задачу оптимальным образом?

Всем заранее спасибо за ответ!
...
Рейтинг: 0 / 0
Есть String с html-документом. Как изменить имя сервера во всех линках?
    #33666520
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а если просто вставить в заголовок путь к веб проекту
<base href="http://host:8080/вася/петя"/>
...
Рейтинг: 0 / 0
Есть String с html-документом. Как изменить имя сервера во всех линках?
    #33666554
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если вариант предложеннный am_sasa не подходит, то я бы например сделал это при помощи регулярных выражений.
...
Рейтинг: 0 / 0
Есть String с html-документом. Как изменить имя сервера во всех линках?
    #33666568
Vetal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
am_sasaа если просто вставить в заголовок путь к веб проекту
<base href="http://host:8080/вася/петя"/>
в принципе, неплохой вариант. Но у меня в html-файле могут быть относительные ссылки на html-страницы на том же хосте, где и картинки в ссылках <a href>. Мне нужно, чтобы пользователю нельзя было заходить на эти страницы...
...
Рейтинг: 0 / 0
Есть String с html-документом. Как изменить имя сервера во всех линках?
    #33667492
WS_Guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Регулярные выражения лучший выход на мой взгляд. Код на Java навскидку не накидаю но
комман лайн под Linux или Cygwin будет примерно такой:

cat 1.html |perl -ne 's/img src=\"/img src=\"http:\/\/www.me.com/g;print' >2.html
...
Рейтинг: 0 / 0
Есть String с html-документом. Как изменить имя сервера во всех линках?
    #33668105
Vetal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wessenесли вариант предложеннный am_sasa не подходит, то я бы например сделал это при помощи регулярных выражений.
Проблема в том, что в исходном тексте перенос строки (0D0A) может стоять любом месте. Поэтому нужно подменять теги img src с учетом того, что они могут быть разорваны переводом строки в любом месте. Сделал так:

String content = "<html>blablabla<img src=\"/images/img001.jpg\">blablabla<html>"
content = content.replaceAll("<\\s*img\\s*src\\s*=\\s*\"\\s*/\\s*","<img src=\"http:/www.myserver.com/");

Очень уж не нравиться паттерн регулярного выражения, который получился... Может, есть паттерн или решение поэллегантней?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Есть String с html-документом. Как изменить имя сервера во всех линках?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]