다음을 통해 공유


XML 문서에서 노드, 내용 및 값 수정

여러 가지 방법으로 문서에서 노드와 내용을 수정할 수 있습니다. 마케팅 목록의 구성원을 관리할 수 있습니다.

  • Value 속성을 사용하여 노드 값을 변경할 수 있습니다.

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

  • RemoveChild 메서드를 사용하여 기존 노드를 새 노드로 바꿀 수 있습니다.

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

  • DeleteData에서 상속된 노드 형식에서 XmlCharacterData 메서드로 문자 범위를 제거하여 내용을 수정할 수 있습니다.

node.Value = "new value";를 사용하면 쉽게 노드 값을 변경할 수 있습니다. 다음 표에서는 이 한 줄 코드를 사용할 수 있는 노드 형식 및 이 노드 형식에 대해 변경되는 데이터를 보여 줍니다.

Node 형식 변경되는 데이터
Attribute 특성 값
CDATASection CDATASection 내용
Comment(설명) 주석의 내용입니다.
ProcessingInstruction 대상을 제외한 내용
Text 텍스트 내용
XmlDeclaration <?xml?> 태그를 제외한 선언 내용
공백 공백 값. 인식된 XML 공백 문자인 공백, 탭, CR 또는 LF 중 하나로 값을 설정할 수 있습니다.
SignificantWhitespace 유효 공백 값. 인식된 XML 공백 문자인 공백, 탭, CR 또는 LF 중 하나로 값을 설정할 수 있습니다.

이 표에 나열되지 않은 노드 형식은 값을 설정하기에 적합한 노드 형식이 아닙니다. 다른 노드 형식에서 값을 설정하면 InvalidOperationException이 throw됩니다.

InnerXml 속성은 현재 노드의 자식 노드 태그를 변경합니다. 이 속성을 설정하면 자식 노드가 지정된 문자열의 구문 분석된 내용으로 바뀝니다. 현재 네임스페이스 컨텍스트에서 구문 분석이 수행됩니다. 또한 InnerXml은 중복 네임스페이스 선언을 제거합니다. 결과적으로 복사 및 붙여넣기를 여러 번 실행해도 중복 네임스페이스 선언으로 인해 문서 크기가 증가하지 않습니다. InnerXml 작업에서 네임스페이스의 결과를 보여 주는 코드 예제는 InnerXml 속성을 참조하세요.

ReplaceDataRemoveChild 메서드를 사용하는 경우 이 메서드는 바뀌거나 제거된 노드를 반환합니다. 그러면 이 노드를 XML DOM(문서 개체 모델)에 다시 삽입할 수 있습니다. ReplaceData 메서드는 문서에 삽입하는 노드에서 두 가지 유효성 검사를 수행합니다. 첫 번째 검사에서 노드가 해당 형식의 자식 노드를 가질 수 있는 노드의 자식이 되는지 확인합니다. 두 번째 검사에서 삽입하는 노드가 부모가 될 노드의 상위 노드가 아닌지 확인합니다. 이러한 조건을 하나라도 위반하면 InvalidOperationException이 throw됩니다.

편집할 수 있는 노드에서 읽기 전용 자식을 추가하거나 제거할 수 있습니다. 그러나 읽기 전용 노드 자체를 수정하려고 시도하면 InvalidOperationException이 throw됩니다. 이에 관한 예제는 XmlEntityReference 노드의 자식을 수정하는 것입니다. 자식은 읽기 전용이며 수정할 수 없습니다. 자식을 수정하려고 시도하면 InvalidOperationException이 throw됩니다.

참고 항목