изменение данных элемента - PullRequest
0 голосов
/ 26 июня 2011

Мне нужно изменить некоторую информацию в файле HTML, и мне удалось добраться до элементов с помощью JSOUP.Однако я столкнулся с проблемой при попытке изменить следующий элемент стиля:

<style type="text/css">
#leftimage {
    background: #FFFCEF 
        url("/image1.jpg");
}

</style>

Я использовал следующий код

Element txt=doc.select("style").first();
String t=txt.data();
String s=" #leftimage { background: #FFFCEF url('/image1.jpg');}";
txt.data().replace(t, s);

, но ничего не изменилось!Почему цвет не меняется, когда я это делаю?

1 Ответ

0 голосов
/ 27 июня 2011

Строка в Java является неизменной. Вы не можете изменить это. В вашем случае replace () не изменяет существующий текст, но ВОЗВРАЩАЕТ новый текст с замененными данными (см. Javadoc).

На самом деле, глядя на то, что вы хотите сделать, запуск команды replace также не имеет особого смысла (он заменяет любое вхождение t на s внутри строки, на которой вы его выполняете). В основном вы хотите заменить весь текст вашего элемента, поэтому вам, скорее всего, нужно сделать что-то вроде:

txt.text(" #leftimage { background: #FFFCEF url('/image1.jpg');}");
...