
DOMCharacterData::deleteData 메서드는 특정 범위의 문자열 데이터를 삭제하는 메서드입니다.
deleteData 메서드의 인자로 전달하는 offset은 삭제할 문자열의 시작 인덱스를 의미하고, count는 삭제할 문자열의 길이를 의미합니다.
만약 offset이 문자열의 끝 인덱스보다 큰 경우, 메서드는 문자열의 끝까지 데이터를 삭제합니다.
예를 들어, 문자열 "Hello World"가 있을 때, offset이 6이고 count가 5인 경우, "World"만 삭제되고 "Hello"는 남아있게 됩니다.
예시 코드는 다음과 같습니다.
#hostingforum.kr
java
import org.w3c.dom.CharacterData;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import java.io.IOException;
import java.io.StringReader;
public class Main {
public static void main(String[] args) throws ParserConfigurationException, IOException, SAXException {
// XML 문서를 파싱하여 Document 객체를 생성합니다.
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
InputSource is = new InputSource(new StringReader("Hello World"));
Document document = builder.parse(is);
// 문자열 "World"를 삭제합니다.
Node node = document.getDocumentElement().getFirstChild();
while (node != null) {
if (node instanceof CharacterData) {
CharacterData characterData = (CharacterData) node;
characterData.deleteData(6, 5);
break;
}
node = node.getNextSibling();
}
// 삭제된 문자열을 출력합니다.
System.out.println(document.getDocumentElement().getTextContent());
}
}
이 예시 코드에서는 XML 문서를 파싱하여 Document 객체를 생성하고, 문자열 "World"를 삭제합니다. 삭제된 문자열을 출력하여 결과를 확인할 수 있습니다.
2025-04-30 23:38