특정 노드의 특정 자식 노드를 제거할 때는 XmlNode의 RemoveChild 메서드를 사용합니다.
public XmlNode RemoveChild ( XmlNode node);
특정 노드의 모든 자식과 특성을 제거할 때는 XmlNode의 RemoveAll 메서드를 사용합니다.
public void RemoveAll ( );
특성 컬렉션에서 특정 특성을 제거할 때는 특성 컬렉션의 Remove 메서드를 사용합니다.
public XmlAttribute Remove ( );
특성 컬렉션에서 모든 특성을 제거할 때는 특성 컬렉션의 RemoveAll 메서드를 사용합니다.
public void RemoveAll ( );
특성 컬렉션에서 특정 인덱스의 특성을 제거할 때는 특성 컬렉션의 RemoveAt 메서드를 사용합니다.
public XmlAttribute RemoveAt ( int i);
특정 요소의 특성 컬렉션을 제거할 때는 XmlElement 개체의 RemoveAllAttributes를 사용합니다.
public void RemoveAllAttributes ( );
특정 요소의 특성을 이름으로 제거할 때는 XmlElement 개체의 RemoveAttribute 메서드를 사용합니다.
public void RemoveAttribute ( string name); public void RemoveAttribute ( string name, string ns);
특정 요소의 특성을 인덱스로 제거할 때는 XmlElement 개체의 RemoveAttributeAt 메서드를 사용합니다.
public XmlNode RemoveAttributeAt ( int i);
검색 조건과 일치하는 첫 번째 노드를 선택할 때 XmlNode의 SelectSingleNode 메서드를 사용합니다.
public XmlNode SelectSingleNode ( string xpath); public XmlNode SelectSingleNode ( string xpath, XmlNamespaceManager nsmg);
검색 조건과 일치하는 노드의 목록을 선택할 때 XmlNode의 SelectNodes 메서드를 사용합니다.
public XmlNodeList SelectNodes ( string xpath); public XmlNodeList SelectNodes ( string xpath, XmlNamespaceManager nsmg);
다음은 앞에서 설명한 내용을 정리한 소스 코드입니다.
using System; using System.Xml; namespace 예제_노드_제거하기 { class Tracer { XmlDocument doc; public void MakeDocument() { doc = new XmlDocument(); XmlDeclaration xmldecl; xmldecl = doc.CreateXmlDeclaration("1.0", null, null); doc.InsertBefore(xmldecl, doc.DocumentElement); XmlElement root = doc.CreateElement("books"); doc.AppendChild(root); XmlElement elem = doc.CreateElement("book"); elem.InnerText = "XML.NET"; doc.DocumentElement.AppendChild(elem); elem.SetAttribute("price", "12000"); XmlAttribute attr = doc.CreateAttribute("count"); attr.Value = "50"; elem.Attributes.Append(attr); XmlElement elem2 = doc.CreateElement("book"); elem2.InnerText = "ADO.NET"; doc.DocumentElement.AppendChild(elem2); } public void Trace() { TestXmlNode_RemoveChild(); TestXmlNode_RemoveAll(); TestAttributes_Remove(); TestAttributes_RemoveAll(); TestAttributes_RemoveAt(); TestElement_RemoveAllAttributes(); TestElement_RemoveAttribute(); TestElement_RemoveAttributeAt(); } private void TestElement_RemoveAttributeAt() { Console.WriteLine("---Start TestElement_RemoveAttributeAt---"); MakeDocument(); XmlNode pnode = doc.SelectSingleNode("books"); XmlNode cnode = pnode.ChildNodes[0]; XmlElement xelem = cnode as XmlElement; if (xelem != null) { xelem.RemoveAttributeAt(0); } doc.Save(Console.Out); Console.WriteLine(); Console.WriteLine("---End TestElement_RemoveAttributeAt---"); } private void TestElement_RemoveAttribute() { Console.WriteLine("---Start TestElement_RemoveAttribute---"); MakeDocument(); XmlNode pnode = doc.SelectSingleNode("books"); XmlNode cnode = pnode.ChildNodes[0]; XmlElement xelem = cnode as XmlElement; if (xelem != null) { xelem.RemoveAttribute("price"); } doc.Save(Console.Out); Console.WriteLine(); Console.WriteLine("---End TestElement_RemoveAttribute---"); } private void TestElement_RemoveAllAttributes() { Console.WriteLine("---Start TestElement_RemoveAllAttributes---"); MakeDocument(); XmlNode pnode = doc.SelectSingleNode("books"); XmlNode cnode = pnode.ChildNodes[0]; XmlElement xelem = cnode as XmlElement; if (xelem != null) { xelem.RemoveAllAttributes(); } doc.Save(Console.Out); Console.WriteLine(); Console.WriteLine("---End TestElement_RemoveAllAttributes---"); } private void TestAttributes_RemoveAt() { Console.WriteLine("---Start TestAttributes_RemoveAt---"); MakeDocument(); XmlNode pnode = doc.SelectSingleNode("books"); XmlNode cnode = pnode.ChildNodes[0]; XmlAttributeCollection col = cnode.Attributes; col.RemoveAt(0); doc.Save(Console.Out); Console.WriteLine(); Console.WriteLine("---End TestAttributes_RemoveAt---"); } private void TestAttributes_RemoveAll() { Console.WriteLine("---Start TestAttributes_RemoveAll---"); MakeDocument(); XmlNode pnode = doc.SelectSingleNode("books"); XmlNode cnode = pnode.ChildNodes[0]; XmlAttributeCollection col = cnode.Attributes; col.RemoveAll(); doc.Save(Console.Out); Console.WriteLine(); Console.WriteLine("---End TestAttributes_RemoveAll---"); } private void TestAttributes_Remove() { Console.WriteLine("---Start TestAttributes_Remove---"); MakeDocument(); XmlNode pnode = doc.SelectSingleNode("books"); XmlNode cnode = pnode.ChildNodes[0]; XmlAttributeCollection col = cnode.Attributes; XmlAttribute attr = col["price"]; col.Remove(attr); doc.Save(Console.Out); Console.WriteLine(); Console.WriteLine("---End TestAttributes_Remove---"); } private void TestXmlNode_RemoveAll() { Console.WriteLine("---Start TestXmlNode_RemoveAll---"); MakeDocument(); XmlNode pnode = doc.SelectSingleNode("books"); pnode.RemoveAll(); doc.Save(Console.Out); Console.WriteLine(); Console.WriteLine("---End TestXmlNode_RemoveAll---"); } private void TestXmlNode_RemoveChild() { Console.WriteLine("---Start TestXmlNode_RemoveChild---"); MakeDocument(); XmlNode pnode = doc.SelectSingleNode("books"); XmlNode cnode = pnode.ChildNodes[0]; pnode.RemoveChild(cnode); doc.Save(Console.Out); Console.WriteLine(); Console.WriteLine("---End TestXmlNode_RemoveChild---"); } } class Program { static void Main(string[] args) { Tracer tracer = new Tracer(); tracer.Trace(); } } }