DOM에서 요소의 새 특성 만들기

특성은 노드가 아니므로 새 특성을 만드는 것은 다른 노드 형식을 만드는 것과 다릅니다. 이는 요소 노드의 속성이며 요소와 연결된 XmlAttributeCollection에 포함되어 있습니다. 다음과 같은 여러 가지 방법으로 특성을 만들고 요소를 추가할 수 있습니다.

  • 요소 노드를 가져오고 SetAttribute를 사용하여 특성을 해당 요소의 특성 컬렉션에 추가합니다.

  • CreateAttribute 메서드를 사용하여 XmlAttribute 노드를 만들고, 요소 노드를 가져온 다음, SetAttributeNode를 사용하여 해당 요소의 특성 컬렉션에 노드를 추가합니다.

다음 예제에서는 SetAttribute 메서드를 사용하여 요소에 특성을 추가하는 방법을 보여줍니다.

Imports System.IO
Imports System.Xml

Public Class Sample

    Public Shared Sub Main()

        Dim doc As New XmlDocument()
        doc.LoadXml("<book xmlns:bk='urn:samples' bk:ISBN='1-861001-57-5'>" & _
                    "<title>Pride And Prejudice</title>" & _
                    "</book>")
        Dim root As XmlElement = doc.DocumentElement

        ' Add a new attribute.
        root.SetAttribute("genre", "urn:samples", "novel")

        Console.WriteLine("Display the modified XML...")
        Console.WriteLine(doc.InnerXml)
    End Sub
End Class
using System;
using System.IO;
using System.Xml;

public class Sample
{
    public static void Main()
    {
        var doc = new XmlDocument();
        doc.LoadXml("<book xmlns:bk='urn:samples' bk:ISBN='1-861001-57-5'>" +
                    "<title>Pride And Prejudice</title>" +
                    "</book>");
        XmlElement root = doc.DocumentElement;

        // Add a new attribute.
        root.SetAttribute("genre", "urn:samples", "novel");

        Console.WriteLine("Display the modified XML...");
        Console.WriteLine(doc.InnerXml);
    }
}

다음 예제에서는 CreateAttribute 메서드를 사용하여 새 특성을 만드는 방법을 보여 줍니다. 그런 다음 SetAttributeNode 메서드를 사용하여 book 요소의 특성 컬렉션에 해당 특성이 추가됩니다.

다음과 같은 XML을 가정합니다.

<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>

새 특성을 만들어 값을 지정합니다.

Dim attr As XmlAttribute = doc.CreateAttribute("publisher")
attr.Value = "WorldWide Publishing"
XmlAttribute attr = doc.CreateAttribute("publisher");
attr.Value = "WorldWide Publishing";

요소에 특성을 연결합니다.

doc.DocumentElement.SetAttributeNode(attr)
doc.DocumentElement.SetAttributeNode(attr);

출력

<book genre="novel" ISBN="1-861001-57-5" publisher="WorldWide Publishing">
<title>Pride And Prejudice</title>
</book>

전체 코드 샘플은 CreateAttribute에서 찾을 수 있습니다.

특성의 XmlNamedNodeMap을 만든 경우 SetNamedItem 메서드를 사용하여 이름에 따라 특성을 추가할 수 있습니다. 자세한 내용은 NamedNodeMaps 및 NodeLists의 노드 컬렉션을 참조하세요.

기본 특성

기본 특성을 포함하도록 선언된 요소를 만들면 새 기본 특성이 XML DOM(문서 개체 모델)에서 해당 기본값과 함께 만들어지고 해당 요소에 추가됩니다. 이때 기본 특성의 자식 노드도 만들어집니다.

특성 자식 노드

특성 노드 값은 자신의 자식 노드가 됩니다. 유효한 자식 노드에는 XmlText 노드와 XmlEntityReference 노드의 두 가지 형식만 있습니다. FirstChildLastChild와 같은 메서드에서 이러한 형식의 노드를 자식 노드로 처리한다는 점에서 이러한 형식의 노드는 자식 노드입니다. 자식 노드가 있는 특성의 이와 같은 차이점은 특성이나 특성 자식 노드를 제거하려는 경우에 중요합니다. 자세한 내용은 DOM의 요소 노드에서 특성 제거를 참조하세요.

참고 항목