改变元素的数据

发布于 2024-11-17 13:33:38 字数 443 浏览 0 评论 0原文

我需要更改 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);

,但没有任何改变!为什么当我这样做时颜色没有改变?

I need to change some information in an HTML file and I managed to reach to the elements using JSOUP. However, I faced a problem when trying to modify the following style element:

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

</style>

I used the following code

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

but nothing changed! Why isn't the color changing when I do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

箹锭⒈辈孓 2024-11-24 13:33:38

Java 中的字符串是不可变的。你无法改变它。在您的情况下,replace() 不会更改现有文本,而是返回带有替换数据的新文本(请阅读 Javadoc)。

实际上看看你想要做什么,运行replace也没有太大意义(它用你运行它的字符串中的s替换任何出现的t)。您基本上想要替换元素的整个文本,因此您很可能需要执行以下操作:

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

String in Java is immutable. You cannot change it. In your case replace() does not change existing text but RETURNS new text with replaced data (read the Javadoc for it).

Actually looking at what you want to do, running replace also does not make too much sense (it substitues any occurence of t with s inside the string you run it on). You basically want to replace the whole text of your element, so you most likely need to do something like:

txt.text(" #leftimage { background: #FFFCEF url('/image1.jpg');}");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文