다음을 통해 공유


XML 문서에서 노드, 콘텐츠 및 값 수정

문서에서 노드 및 콘텐츠를 수정할 수 있는 방법은 여러 가지가 있습니다. 다음을 할 수 있습니다:

  • 속성을 사용하여 노드 값을 변경합니다 Value .

  • 노드를 새 노드로 바꿔 전체 노드 집합을 수정합니다. 이 작업은 속성을 사용하여 수행됩니다 InnerXml .

  • 메서드를 사용하여 기존 노드를 새 노드로 RemoveChild 바꿉니다.

  • XmlCharacterData 클래스를 상속하는 노드에 AppendData, InsertData, 또는 ReplaceData 메서드를 사용하여 추가 문자를 추가합니다.

  • DeleteData을(를) 상속하는 노드 타입의 XmlCharacterData 메서드를 사용하여 특정 문자 범위를 제거해 콘텐츠를 수정합니다.

노드 값을 변경하는 간단한 방법은 .를 사용하는 node.Value = "new value";것입니다. 다음 표에는 이 단일 코드 줄에서 작동하는 노드 형식과 해당 노드 형식에 대한 데이터가 정확히 변경된 내용이 나와 있습니다.

노드 유형 변경된 데이터
특성 특성의 값입니다.
CDATA 섹션 CDATASection의 콘텐츠입니다.
주석 주석의 내용입니다.
처리 명령 대상을 제외한 콘텐츠입니다.
문자 메시지 텍스트의 내용입니다.
XmlDeclaration 선언 내용, <?xml?> 태그 제외.
공백 공백의 가치 값을 공백, 탭, CR 또는 LF의 네 가지 인식된 XML 공백 문자 중 하나로 설정할 수 있습니다.
의미 있는 공백 중요한 공백의 값입니다. 값을 공백, 탭, CR 또는 LF의 네 가지 인식된 XML 공백 문자 중 하나로 설정할 수 있습니다.

테이블에 나열되지 않은 노드 형식은 값을 설정할 수 있는 유효한 노드 형식이 아닙니다. 다른 노드 형식에 값을 설정하면 InvalidOperationException이(가) 발생합니다.

속성은 InnerXml 현재 노드에 대한 자식 노드의 태그를 변경합니다. 이 속성을 설정하면 자식 노드가 지정된 문자열의 구문 분석된 내용으로 대체됩니다. 구문 분석이 현재 네임스페이스 컨텍스트에서 수행됩니다. 또한 InnerXml 중복 네임스페이스 선언을 제거합니다. 따라서 많은 잘라내기 및 붙여넣기 작업을 수행해도 중복 네임스페이스 선언이 있는 문서의 크기는 증가하지 않습니다. 네임스페이스가 작업에 미치는 영향을 보여 주는 코드 예제는 InnerXml 속성을 참조하세요 InnerXml .

ReplaceDataRemoveChild 메서드를 사용할 때, 메서드는 대체되거나 제거된 노드를 반환합니다. 그런 다음 이 노드를 XML DOM(문서 개체 모델)의 다른 위치에 다시 삽입할 수 있습니다. 이 메서드는 ReplaceData 문서에 삽입되는 노드에 대해 두 가지 유효성 검사를 수행합니다. 첫 번째 검사는 노드가 해당 형식의 자식 노드를 가질 수 있는 노드의 자식이 되는지 확인합니다. 두 번째 검사는 삽입되는 노드가 자식이 되는 노드의 상위 노드가 아닌지 확인합니다. 이러한 조건 중 하나를 위반하면 InvalidOperationException를 던집니다.

편집할 수 있는 노드에 읽기 전용 자식을 추가하거나 제거하는 것이 가능합니다. 그러나 읽기 전용 노드 자체를 수정하려고 하면 InvalidOperationException이/가 발생합니다. 이 예제는 노드의 XmlEntityReference 자식을 수정하는 것입니다. 자식은 읽기 전용이며 수정할 수 없습니다. 수정하려는 모든 시도는 InvalidOperationException 오류를 발생시킵니다.

참고하십시오