2010-04-19 87 views
0

我試圖從一個POJO創建一個xml文件,其中我有一個存儲url的屬性, 我一直使用下面的方法來替換url中的所有& String使xml符合標準並將其作爲html char實體傳遞,但字符串不會更改。java中有效的xml元素replaceAll看起來不錯

public static String forHrefAmpersand(String aURL){ 
    return aURL.replaceAll("&", "&"); 
} 

值可能是www.abc.com/controller?a=1&next=showResults

我甚至試圖改變用「/」因爲我讀replaceAll使用正則表達式,但replaceAll無法按預期工作上面的方法,誰能告訴我是什麼我在做什麼錯誤? 在此先感謝

+0

使用xstream等庫;不要試圖用字符串寫XML,因爲你幾乎保證做錯了 – kdgregory 2010-04-25 12:39:30

回答

0

您的代碼中可能存在其他錯誤。我建議打印forHrefAmpersand()返回到System.out的字符串。它應該包含你期望的價值。

PS:如果您使用的是Java 5,則可以使用String.replace()代替。

+0

Im使用replaceAll作爲字符串可能包含多個&,我做了一個System.out,它只是打印不變的字符串 – John 2010-04-19 08:09:54

+1

谷歌搜索後似乎很多人都面臨同樣的問題 公共字符串replaceAll(字符串正則表達式,字符串替換) 如果替換字符串不包含'$'或'/'字符,此方法工作正常。如果替換字符串包含這些字符,結果可能不準確。 修復:使用Matcher.quoteReplacement(更換) 公共字符串的replaceAll(字符串的正則表達式, Matcher.quoteReplacement(更換)) – John 2010-04-19 08:12:06

+0

'代替()'也替換所有出現的但不使用正則表達式,所以沒有特殊字符。 – 2010-04-19 08:40:36