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

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

cat 1.html |perl -ne 's/img src=\"/img src=\"http:\/\/www.me.com/g;print' >2.html
...
Рейтинг: 0 / 0
14.04.2006, 17:44
    #33668105
Vetal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть String с html-документом. Как изменить имя сервера во всех линках?
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
Форумы / Java [игнор отключен] [закрыт для гостей] / Есть String с html-документом. Как изменить имя сервера во всех линках? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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