2010-12-13 65 views
0

我怎樣才能在XML替換字符串..XML字符串替換

<schema>src/main/castor/document.xsd</schema> 

我需要更換到

<schema>cs/src/main/castor/document.xsd</schema> 

如果我使用簡單,xmlInStr是字符串xml文檔格式

xmlInStr.replaceAll(
    "src/main/castor/GridDocument.xsd",  
    "correspondenceCastor/src/main/castor/GridDocument.xsd" 
); 

我試過替換,

xmlInStr.replace("src/main/castor/GridDocument.xsd".toCharArray().toString(), "correspondenceCastor/src/main/castor/GridDocument.xsd".toCharArray().toString()); 

它不工作。任何線索

管理這樣

INT INDX = from.indexOf(從); xmlInStr = xmlInStr.substring(0,indx)+ to + xmlInStr.substring(indx + from.length());

回答

1

您可以使用repalce或replaceAll。無論如何,你必須使用這個方法返回的值。該方法不會修改字符串本身,因爲String類是不可變的。

+0

你是對的,我錯過了基本! – srinannapa 2010-12-14 09:21:41

3

String.replaceAll將正則表達式作爲第一個參數。改爲使用replace

2

您使用XML解析器來解析和操作XML,不要嘗試使用基於正則表達式的字符串替換機制,它將無法工作,只會帶來痛苦和痛苦。

0

replace()replaceAll()都不會實際替換字符串中的任何內容(字符串是不可變的)。他們會返回一個新的字符串,但是您只是丟棄返回值,這就是爲什麼您不會在任何地方看到它。順便說一句,那.toCharArray().toString()看起來對我完全沒用。字符文字已經是一個完整的字符串。

但是您確實應該使用XML解析器。除非你的任務非常簡單,並且你絕對相信你不會替換任何不應該被替換的東西。