XML 문서에서 노드, 내용 및 값 수정Modifying Nodes, Content, and Values in an XML Document

여러 가지 방법으로 문서에서 노드와 내용을 수정할 수 있습니다.There are many ways you can modify the nodes and content in a document. 다음과 같은 작업을 수행할 수 있습니다.You can:

  • Value 속성을 사용하여 노드 값을 변경할 수 있습니다.Change the value of nodes using the Value property.

  • 노드를 새 노드로 바꿔 전체 노드 집합을 수정할 수 있습니다.Modify an entire set of nodes by replacing the nodes with new nodes. 이 작업은 InnerXml 속성을 사용하여 수행합니다.This is done using the InnerXml property.

  • RemoveChild 메서드를 사용하여 기존 노드를 새 노드로 바꿀 수 있습니다.Replace existing nodes with new nodes using the RemoveChild method.

  • XmlCharacterData, AppendData 또는 InsertData 메서드를 사용하여 ReplaceData 클래스에서 상속된 노드에 문자를 추가할 수 있습니다.Add additional characters to nodes that inherit from the XmlCharacterData class using the AppendData, InsertData, or ReplaceData methods.

  • DeleteData에서 상속된 노드 형식에서 XmlCharacterData 메서드로 문자 범위를 제거하여 내용을 수정할 수 있습니다.Modify the content by removing a range of characters using the DeleteData method on node types that inherit from XmlCharacterData.

node.Value = "new value";를 사용하면 쉽게 노드 값을 변경할 수 있습니다.A simple technique for changing the value of a node is to use node.Value = "new value";. 다음 표에서는 이 한 줄 코드를 사용할 수 있는 노드 형식 및 이 노드 형식에 대해 변경되는 데이터를 보여 줍니다.The following table lists the node types that this single line of code works on and exactly what data for that node type is changed.

노드 형식Node type 변경되는 데이터Data changed
특성Attribute 특성 값The value of the attribute.
CDATASectionCDATASection CDATASection 내용The content of the CDATASection.
주석Comment 주석의 내용입니다.The content of the comment.
ProcessingInstructionProcessingInstruction 대상을 제외한 내용The content, excluding the target.
텍스트Text 텍스트 내용The content of the text.
XmlDeclarationXmlDeclaration <?xml?> 태그를 제외한 선언 내용The content of the declaration, excluding the <?xml and ?> markup.
WhitespaceWhitespace 공백 값.The value of the white space. 인식된 XML 공백 문자인 공백, 탭, CR 또는 LF 중 하나로 값을 설정할 수 있습니다.You can set the value to be one of the four recognized XML white space characters: space, tab, CR, or LF.
SignificantWhitespaceSignificantWhitespace 유효 공백 값.The value of the significant white space. 인식된 XML 공백 문자인 공백, 탭, CR 또는 LF 중 하나로 값을 설정할 수 있습니다.You can set the value to be one of the four recognized XML white space characters: space, tab, CR, or LF.

이 표에 나열되지 않은 노드 형식은 값을 설정하기에 적합한 노드 형식이 아닙니다.Any node type not listed in the table is not a valid node type to set a value on. 다른 노드 형식에서 값을 설정하면 InvalidOperationException이 throw됩니다.Setting a value on any other node type throws an InvalidOperationException.

InnerXml 속성은 현재 노드의 자식 노드 태그를 변경합니다.The InnerXml property changes the markup of the child nodes for the current node. 이 속성을 설정하면 자식 노드가 지정된 문자열의 구문 분석된 내용으로 바뀝니다.Setting this property replaces the child nodes with the parsed contents of the given string. 현재 네임스페이스 컨텍스트에서 구문 분석이 수행됩니다.The parsing is done in the current namespace context. 또한 InnerXml은 중복 네임스페이스 선언을 제거합니다.In addition, InnerXml removes redundant namespace declarations. 결과적으로 복사 및 붙여넣기를 여러 번 실행해도 중복 네임스페이스 선언으로 인해 문서 크기가 증가하지 않습니다.As a result, numerous cut and paste operations do not increase the size of your document with redundant namespace declarations. InnerXml 작업에서 네임스페이스의 결과를 보여 주는 코드 예제는 InnerXml 속성을 참조하세요.For a code example showing the effect of namespaces on the InnerXml operation, see the InnerXml property.

ReplaceDataRemoveChild 메서드를 사용하는 경우 이 메서드는 바뀌거나 제거된 노드를 반환합니다.When using the ReplaceData and RemoveChild methods, the methods return the replaced or removed node. 그러면 이 노드를 XML DOM(문서 개체 모델)에 다시 삽입할 수 있습니다.This node can then be reinserted somewhere else in the XML Document Object Model (DOM). ReplaceData 메서드는 문서에 삽입하는 노드에서 두 가지 유효성 검사를 수행합니다.The ReplaceData method does two validation checks on the node being inserted into the document. 첫 번째 검사에서 노드가 해당 형식의 자식 노드를 가질 수 있는 노드의 자식이 되는지 확인합니다.The first check ensures that the node is becoming a child of a node that can have child nodes of its type. 두 번째 검사에서 삽입하는 노드가 부모가 될 노드의 상위 노드가 아닌지 확인합니다.The second check ensures that the node being inserted is not an ancestor of the node it is becoming a child of. 이러한 조건을 하나라도 위반하면 InvalidOperationException이 throw됩니다.Violating either of these conditions throws an InvalidOperationException.

편집할 수 있는 노드에서 읽기 전용 자식을 추가하거나 제거할 수 있습니다.It is valid to add or remove a read-only child from a node that can be edited. 그러나 읽기 전용 노드 자체를 수정하려고 시도하면 InvalidOperationException이 throw됩니다.However, attempts to modify the read-only node itself throws an InvalidOperationException. 이에 관한 예제는 XmlEntityReference 노드의 자식을 수정하는 것입니다.An example of this is modifying the children of an XmlEntityReference node. 자식은 읽기 전용이며 수정할 수 없습니다.The children are read-only and cannot be modified. 자식을 수정하려고 시도하면 InvalidOperationException이 throw됩니다.Any attempt to modify them throws an InvalidOperationException.

참조See also