如何在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());
答案 0 :(得分:3)
String.replaceAll
将正则表达式作为第一个参数。请改用replace
。
答案 1 :(得分:2)
您使用XML解析器来解析和操作XML,不要尝试使用基于正则表达式的字符串替换机制,它不会起作用,只会带来痛苦和痛苦。
答案 2 :(得分:1)
您可以使用replace和replaceAll。无论如何,你必须使用此方法返回的值。该方法不会修改字符串本身,因为String类是不可变的。
答案 3 :(得分:0)
replace()
和replaceAll()
实际上并不替换字符串中的任何内容(字符串是不可变的)。他们返回一个新字符串,但你只是丢弃了返回值,这就是你没有在任何地方看到它的原因。顺便说一下,.toCharArray().toString()
看起来对我来说完全没用。字符文字已经是一个完整的字符串。
但你真的应该使用XML解析器。除非您的任务非常简单,否则您绝对不会替换任何不应更换的内容。