XML字符串替换

时间:2010-12-13 13:41:48

标签: java xml

如何在xml中替换String ..

我已经

<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(from);             xmlInStr = xmlInStr.substring(0,indx)+到+ xmlInStr.substring(indx + from.length());

4 个答案:

答案 0 :(得分:3)

String.replaceAll将正则表达式作为第一个参数。请改用replace

答案 1 :(得分:2)

您使用XML解析器来解析和操作XML,不要尝试使用基于正则表达式的字符串替换机制,它不会起作用,只会带来痛苦和痛苦。

答案 2 :(得分:1)

您可以使用replace和replaceAll。无论如何,你必须使用此方法返回的值。该方法不会修改字符串本身,因为String类是不可变的。

答案 3 :(得分:0)

replace()replaceAll()实际上并不替换字符串中的任何内容(字符串是不可变的)。他们返回一个新字符串,但你只是丢弃了返回值,这就是你没有在任何地方看到它的原因。顺便说一下,.toCharArray().toString()看起来对我来说完全没用。字符文字已经是一个完整的字符串。

但你真的应该使用XML解析器。除非您的任务非常简单,否则您绝对不会替换任何不应更换的内容。