Модификация Html с использованием JSOUP — Не хочу, чтобы мой URL был «разрешен»

#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-адреса. Вы можете проанализировать их и удалить хост, как описано здесь .