안녕하세요. 명월입니다.
이전 포스팅에서 XmlNodeReader 와 XmlTextReader 클래스로 XML을 읽어 들일 수 있는 방법이 두가지라고 소개하였습니다. 그의 비해 Writer는 XmlTextWriter 로 생성하고 XMLDocument 로 수정을 할 수 있습니다.
그럼 MSDN을 살펴 보겠습니다.
MSDN - XmlTextWriter 바로가기
역시 이런 설명보다는 하나의 예제가 이해가 빠르니 먼저 XML 를 생성하고 수정을 해보겠습니다.
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
namespace Blog20121003_0_
{
class Program
{
static void Main(string[] args)
{
new Program();
}
public Program()
{
XmlTextWriterTest();
Console.WriteLine("Press any key...");
Console.ReadLine();
}
public void XmlTextWriterTest()
{
XmlTextWriter XTW = new XmlTextWriter("XmlTextWriterTest.xml", Encoding.Unicode);
XTW.Formatting = Formatting.Indented;
XTW.WriteStartDocument();// 시작
XTW.WriteDocType("Test", null, "test.dtd", null);
XTW.WriteStartElement("Tistory");
XTW.WriteStartElement("명월블로그");
XTW.WriteAttributeString("강좌", "C#");
XTW.WriteElementString("작성일", "20121003");
XTW.WriteElementString("강좌명", "XML 통신");
XTW.WriteElementString("작성자", "명월");
XTW.WriteEndElement();
XTW.WriteEndElement();
XTW.WriteEndDocument();//끝
XTW.Flush();
XTW.Close();
Console.WriteLine("XmlTextWriterTest 작성완료");
}
}
}
>XML이 작성되었습니다. 그럼 작성된 XML의 작성일을 20121004 로 바꾸어 보겠습니다.
먼저 작성일의 노드를 수정을 하려면 작성일까지 검색을 해야 합니다.
검색은 XmlNode를 통해서 검색을 시작합니다.
MSDN - XMLNode 바로가기
예제는 검색부터 수정까지 한꺼번에 설명하겠습니다.
public void XMLDocumentTest()
{
XmlDocument XD = new XmlDocument();
XD.Load("XmlTextWriterTest.xml");
XmlNode Tistory = XD.DocumentElement;
XmlNode Blog = Tistory.FirstChild;
XmlNodeList XNL = Blog.ChildNodes;
foreach (XmlNode XN in XNL)
{
if (XN.LocalName.Equals("작성일"))
{
XN.InnerXml = "20121004";
}
}
XD.Save("XmlTextWriterTest.xml");
}
(전체소스가 아니고 부분 소스입니다.)
위 소스를 보면 XMLNode를 검색하여 작성일 Node까지 찾아가는 모습이 보입니다.
거기에서 InnerXml, 즉 안에 Text값을 변경하고 다시 같은 이름으로 저장하는 소스입니다.
결과화면으로 보시겠습니다.
작성일이 변경 되었습니다.
참조 소스 : Blog20121003[0].zip
'Study > C#' 카테고리의 다른 글
[C# 강좌 - 42] WIndow Form - 4 구조체 , 모달과 모달리스 (0) | 2012.10.16 |
---|---|
[C# 강좌 - 40] WIndow Form - 2 SDI, MDI (0) | 2012.10.14 |
[C# 강좌 - 38] ADO 데이터 베이스 - 3 (0) | 2012.10.12 |
[C# 강좌 - 35] 소켓 통신 - 4 (6) | 2012.10.09 |
[C# 강좌 - 34] 소켓 통신 - 3 (2) | 2012.10.08 |
[C# 강좌 - 33] 소켓 통신 - 2 (1) | 2012.10.07 |
[C# 강좌 - 30] XML 다루기 (1) - Reader (2) | 2012.10.03 |
[C# 강좌 - 28] 스트림 (1) | 2012.09.30 |