Tag ,


앞 2개의 포스터에서 XML 만들기, 노드 생성, 값넣기를 했었는데
이건 노드들의 값을 추가, 수정, 삭제 하는 방법입니다..
항상 말해야하지만...저도 초보인지라 참고만 하심이...

        /// 
        /// 자식노드 생성하고 값넣기
        /// 
        /// 
        /// 
        /// 
        /// 
        protected XmlNode CreateNode(XmlDocument xmlDoc, string name, string innerXml)
        {
            XmlNode node = xmlDoc.CreateElement(string.Empty, name, string.Empty);
            node.InnerXml = innerXml;

            return node;
        }
        /// 
        /// 수정, 삭제 하기
        /// 
        private void XMLModifier()
        {
            // XML문서를 불러온다
            XmlDocument XmlDoc = new XmlDocument();
            XmlDoc.Load("bookconfig.xml");

            // 첫노드를 잡아주고 하위 노드를 선택한다
            XmlNode FristNode = XmlDoc.DocumentElement;
            XmlElement SubNode = (XmlElement)FristNode.SelectSingleNode("BOOK");

            // 하위 노드 특성에 날짜를 입력하기를 원할때(추가를 원할때)
            SubNode.SetAttribute("DATA", DateTime.Today.ToString());

            // 하위 노드를 추가, 삭제, 수정하고 싶을때(BOOK보다 하위)
            // 아래 두줄은 삭제할때나, 수정할때 사용하면 된다.
            XmlNode DeleteNode = SubNode.SelectSingleNode("NAME");
            SubNode.RemoveChild(DeleteNode);

            // 아래 한줄은 추가, 수정할때 사용하면 된다.
            SubNode.AppendChild(CreateNode(XmlDoc, "NAME", "바꿔라"));

            // 위 3줄 중 위2줄은 하위 노드를 삭제하는 코딩이고
            // 아래 한줄은 추가하는 코딩이다.
            // 따라서 수정할때는 먼저 삭제하고 추가해야 한다.
            // 값변경이 안되더라...되는 방법 있으면 알고 싶다 ㅠㅠ

            // 위에 했던 행위들을 바꿔준다..
            // ReplaceChild(SubNode, SubNode); 에서 () 안에 앞에 노드는 변경할 노드
            // 뒤에 노드는 변경당할 노드
            FristNode.ReplaceChild(SubNode, SubNode);
            XmlDoc.Save("bookconfig.xml");
        }

* XML관련한 포스트들...
2009/09/12 - [C#.NET 2.0/Tip] - C# XML문서 만들기
2009/09/12 - [C#.NET 2.0/Tip] - C# XML에서 자식노드 생성, 값 넣기

저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 아르다

댓글을 달아 주세요

  1. 지나가던.. 2016.10.27 12:03 신고  수정/삭제 댓글쓰기 댓글주소

    헐..계속찾던 xml 생성/노드생성/추가/삭제 많이 배워갑니다 너무 감사합니다!!!!!

티스토리 툴바