XmlDocument 클래스로 노드 검색 및 삭제
특정 노드의 특정 자식 노드를 제거할 때는 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);
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(); } } |
[소스] 노드 제거 예제 코드
'프로그래밍 기술 > XML.NET' 카테고리의 다른 글
[XML.NET] 25. OPEN API 활용 (0) | 2016.04.18 |
---|---|
[XML.NET] 23. XmlDocument 클래스로 노드 삽입 (0) | 2016.04.18 |
[XML.NET] 22. DOM 모델로 XML 문서 만들기 (0) | 2016.04.18 |
[XML.NET] 21. DOM 모델 개요 (0) | 2016.04.18 |
[XML.NET] 20. XmlSchema 클래스로 스키마 작성 및 판독 (0) | 2016.04.18 |
[XML.NET] 19. XmlReader 클래스 ReadInnerXml, ReadOuterXml (0) | 2016.04.18 |
[XML.NET] 18.XmlReader 개체로 데이터 분석(Attribute 읽기) (0) | 2016.04.18 |
[XML.NET] 17. XmlReader 개체로 데이터 분석(요소 읽기) (0) | 2016.04.18 |
[XML.NET] 16. XmlReader 개체로 데이터 분석(노드 형식 알아내기) (0) | 2016.04.18 |
[XML.NET] 15. 유효성 검사 설정 XmlReader 개체 만들기 (2) | 2016.04.18 |