프로그래밍/.Net

[본문스크랩] .NET에서 XML활용 DOM객체 활용-5 노드 삭제

강태공97 2014. 1. 17. 21:04

앞선 정리에서 추가,수정을 해봤다.

이제 삭제를 해보겠다. 앞의 내용을 봤다면 삭제도 별것 없다.

예제)

private void btnBook삭제_Click(object sender, EventArgs e)
{
//마지막 Book 엘리먼트를 삭제
XmlDocument doc = new XmlDocument();
doc.Load(pathURI);

XmlElement eBooklist = doc.DocumentElement;
XmlElement eLastBook = eBooklist.LastChild as XmlElement;
//RemoveChild() 삭제 메서드
eBooklist.RemoveChild(eLastBook);
//저장
StringWriter sw = new StringWriter();
doc.Save(sw);
Console.WriteLine(sw.ToString());
sw.Close();
}

RemoveChild()메서드를 이용하여 마지막 자식을 삭제하였다. 이게 끝이다....-_-;;

private void btnBook삭제02_Click(object sender, EventArgs e)
{
XmlDocument doc = new XmlDocument();
doc.Load(pathURI);

XmlElement eBooklist = doc.DocumentElement;
XmlElement eLastBook = eBooklist.LastChild as XmlElement;
//kind 속성 삭제
//eLastBook.RemoveAttributeAt(1);//kind
eLastBook.RemoveAttribute("kind");
//확인
StringWriter sw = new StringWriter();
doc.Save(sw);

Console.WriteLine(sw.ToString());
sw.Close();
}

RemoveAttributeAt()메서드를 이용하여 해당 속성을 삭제 하였다. 이게 끝.... -_-;;;

주석에서 인덱스 값을 넣은 형태의 오버로드도 있는데 첫번째 속성의 인덱스는 0부터이다. kind속성이 2번째 속성이므로 1을 넣거나 바로 아래 코딩처럼 문자열로 속성이름을 직접해줘도 상관 없다.

 

결과출력(엘리먼트 삭제)

마지막 book엘리먼트가 삭제 되어 3개임을 알 수 있다~

 

 

 

결과출력(속성삭제)

마지막 엘리먼트의 kind속성이 삭제 됐음을 알 수 있다.