2011-06-26 10 views
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); 

を使用したが何も変わっていません!なぜ私はこれを行うときに色が変化しないのですか?

答えて

0

Javaの文字列は不変です。それを変更することはできません。あなたのケースでは、replace()は既存のテキストを変更するのではなく、置き換えられたデータで新しいテキストを返します(そのためのJavadocを読んでください)。

実際にあなたがしたいことを見て、置き換えを実行することはあまり意味がありません(それはあなたがそれを実行する文字列の中のsでsの任意の出現を置き換えます)。基本的に要素のテキスト全体を置き換えたいので、次のようなことを行う必要があります。

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