2010-12-13 4 views
0

..XML 문자열 교체

나는, xmlInStr 문자열

내가

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

나는 간단한 사용하는 경우에 교체 할 필요가

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

입니다했습니다 XML 문서 양식

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

나는 대신 교체를 시도했습니다.

작동하지 않습니다. 단서

INT의 INDX 같은 관리 = from.indexOf (행); xmlInStr = xmlInStr.substring (0, indx) + to + xmlInStr.substring (indx + from.length());

답변

1

repalce 또는 replaceAll을 사용할 수 있습니다. 어쨌든이 메서드가 반환 한 값을 사용해야합니다. String 클래스는 변경 가능하지 않기 때문에이 메서드는 문자열 자체를 수정하지 않습니다.

+0

당신이 맞습니다, 나는 기본을 놓쳤습니다! – srinannapa

3

String.replaceAll은 첫 번째 인수로 정규 표현식을 사용합니다. 대신 replace을 사용하십시오.

2

XML 구문 분석기를 사용하여 XML을 구문 분석하고 조작하고 정규 표현식 기반 문자열 교체 메커니즘을 사용하지 마십시오. 작동하지 않으며 고통과 고통 만 가져옵니다.

0

replace()replaceAll()은 실제로 문자열에서 아무 것도 대체하지 않습니다 (문자열은 변경 불가능). 대신 새 문자열을 반환하지만 반환 값을 무시하기 때문에 아무 것도 볼 수 없습니다. 그런데 그 .toCharArray().toString()은 완전히 쓸모없는 것 같습니다. 문자 리터럴은 이미 본격적인 String입니다.

하지만 실제로 XML 파서를 사용해야합니다. 귀하의 작업이 매우 단순하고 교체해야 할 일을 대체하지 않는다고 확신하지 않는 한.