[C# 강좌 26강] XML 통신 -Writer

공부/C#  2012.10.04 09:00



안녕하세요. 개발자 명월입니다.

이전 포스팅에서 XmlNodeReader 와 XmlTextReader 클래스로 XML을 읽어 들일 수 있는 방법이 두가지라고 소개하였습니다. 그의 비해 Writer는 XmlTextWriter 로 생성하고 XMLDocument 로 수정을 할 수 있습니다.

그럼 MSDN을 살펴 보겠습니다.

MSDN - XmlTextWriter 바로가기

 

 

바로가기 - XmlDocument 바로가기

 

 

역시 이런 설명보다는 하나의 예제가 이해가 빠르니 먼저 XML 를 생성하고 수정을 해보겠습니다.

 

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Text;
  4 using System.Xml;
  5
  6 namespace Blog20121003_0_
  7 {
  8     class Program
  9     {
10         static void Main(string[] args)
11         {
12             new Program();
13         }
14         public Program() {
15             XmlTextWriterTest();
16             Console.WriteLine("Press any key...");
17             Console.ReadLine();
18         }
19         public void XmlTextWriterTest() {
20             XmlTextWriter XTW = new XmlTextWriter("XmlTextWriterTest.xml", Encoding.Unicode);
21             XTW.Formatting = Formatting.Indented;
22             XTW.WriteStartDocument();// 시작
23             XTW.WriteDocType("Test", null, "test.dtd", null);
24             XTW.WriteStartElement("Tistory");
25             XTW.WriteStartElement("명월블로그");
26             XTW.WriteAttributeString("강좌", "C#");
27             XTW.WriteElementString("작성일", "20121003");
28             XTW.WriteElementString("강좌명", "XML 통신");
29             XTW.WriteElementString("작성자", "명월");
30             XTW.WriteEndElement();
31             XTW.WriteEndElement();
32             XTW.WriteEndDocument();//끝
33             XTW.Flush();
34             XTW.Close();
35             Console.WriteLine("XmlTextWriterTest 작성완료");
36         }
37     }
38 }
39

 

 

 

XML이 작성되었습니다. 그럼 작성된 XML의 작성일을 20121004 로 바꾸어 보겠습니다.

먼저 작성일의 노드를 수정을 하려면 작성일까지 검색을 해야 합니다.

검색은 XmlNode를 통해서 검색을 시작합니다.

 

MSDN - XMLNode 바로가기

 

 

예제는 검색부터 수정까지 한꺼번에 설명하겠습니다.

 

  1 public void XMLDocumentTest() {
  2       XmlDocument XD = new XmlDocument();
  3       XD.Load("XmlTextWriterTest.xml");
  4
  5       XmlNode Tistory = XD.DocumentElement;
  6       XmlNode Blog = Tistory.FirstChild;
  7       XmlNodeList XNL = Blog.ChildNodes;
  8       foreach (XmlNode XN in XNL) {
  9           if (XN.LocalName.Equals("작성일")) {
10                XN.InnerXml = "20121004";
11           }
12       }
13       XD.Save("XmlTextWriterTest.xml");
14 }

 

(전체소스가 아니고 부분 소스입니다.)

 


 위 소스를 보면 XMLNode를 검색하여 작성일 Node까지 찾아가는 모습이 보입니다.

거기에서 InnerXml, 즉 안에 Text값을 변경하고 다시 같은 이름으로 저장하는 소스입니다.

결과화면으로 보시겠습니다.

 

 

작성일이 변경 되었습니다.

 

참조 소스 : Blog20121003[0].zip

 


댓글 0개가 달렸습니다.
댓글쓰기