#java #html #jsoup
#java #HTML #jsoup
Вопрос:
Вот моя проблема: я хочу изменить HTML-файл на моем сервере tomcat. Этот файл не отображается клиентами, он предназначен для встроенной системы.
Моему файлу index.html
просто необходимо обновить список (просто добавив некоторые html-элементы с помощью цикла for .. довольно просто).
Вот проблема, когда Jsoup.parse()
Jsoup разрешает пользовательский интерфейс, а я этого не хочу!! Я хочу, чтобы это позволяло мне делать все, что я хочу. Я схожу с ума, потому что не могу найти способ избежать этого.
Вот мой код (он грязный, спешка со школьным проектом : ( ):
public String updateIndex(List<Article> articleList)
{
try
{
InputStream in = this.getClass().getClassLoader().getResourceAsStream("embedded/index.html");
Document content = Jsoup.parse(in, "utf-8", "azaze");
Elements articleListElements = content.select("div.aritcle-list");
for (Element articleListElement : articleListElements)
{
for (Article article : articleList)
{
Element articleItem = articleListElement.appendElement("div");
articleItem.addClass("article-list-item");
articleItem.addClass("row");
Element articleLinkElement = articleItem.appendElement("a");
articleLinkElement.attr("href", "LOOOL");
Element articleTitleElement = articleLinkElement.appendElement("h3");
articleTitleElement.append(article.getTitle());
Element articleDescriptionElement = articleItem.appendElement("div");
articleDescriptionElement.addClass("article-list-item-description");
articleDescriptionElement.append(article.getDescription());
}
}
LOGGER.info("base URI =" content.baseUri());
return content.toString();
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
ПРИМЕЧАНИЕ: Изменение uri в Document content = Jsoup.parse(in, "utf-8", "azaze");
ничего не меняет. И я просто хочу, чтобы JSOUP оставил URL в покое :).
Пример нежелательной трансформации :
<link rel="stylesheet" href="css/bootstrap.css">
становится
<link rel="stylesheet" href="http://127.0.0.1:8080/GiveMeAShow/update/css/bootstrap.css">
Как этого избежать?
Спасибо!
Комментарии:
1. Я не думаю, что Jsoup это делает. Не могли бы вы, пожалуйста, поделиться своим html?
2. Я не понимаю, как преобразование примера имеет какое-либо отношение к вашему коду. Вы даже не обращаетесь ни к какому
<link>
элементу. В любом случае, вы уверены, что HTML изначально не содержит абсолютных URL-адресов?element.attr("href")
должен выдавать толькоhref
атрибут, определенный в исходном коде HTML. Я предполагаю, что источник уже содержит абсолютные URL-адреса. Вы можете проанализировать их и удалить хост, как описано здесь .