XmlTextWriter 클래스를 이용한 XML파일 생성방법

.NET Framework에서는 XML을 쉽게 기록할 수 있도록 XmlTextWriter  클래스를 제공하고 있다. 이 XmlTextWriter 클래스는 속도가 빠르고, 캐시되지 않으며, 앞으로만 이동 가능한 방법을 제공한다.

아래는 XmlTextWriter 클래스를 사용한 예제이다.

XmlTextWriter 사용 예제

[code lang=”csharp”]
void IDataProcessor.SaveList(List<ProgramInfo> programList, string filePath)
{
XmlTextWriter writer = new XmlTextWriter(filePath, null);

// 자식요소에 따라 들여쓰기하기
writer.Formatting = Formatting.Indented;

writer.WriteStartDocument();

writer.WriteComment("This file stores application version list");

// <Programs>
writer.WriteStartElement("Programs");

for (int i = 0; i < programList.Count; i++)
{
// <Program>
writer.WriteStartElement("Program");

// <ID />
writer.WriteElementString("ID", programList[i].ID);

// <Name />
writer.WriteElementString("Name", programList[i].Name);

// <Contents />
writer.WriteElementString("Contents", programList[i].Contents);

// <RegistrationDate />
writer.WriteElementString("RegistrationDate", programList[i].RegistrationDate.ToString());

// <Versions>
writer.WriteStartElement("Versions");

for (int j = 0; j < programList[i].Versions.Count; j++)
{
// <Version>
writer.WriteStartElement("Version");

// <VersionNo />
writer.WriteElementString("VersionNo", programList[i].Versions[j].VersionNo);

// <RegistrationDate />
writer.WriteElementString("RegistrationDate", programList[i].Versions[j].RegistrationDate.ToString());

// <EditDate />
writer.WriteElementString("EditDate", programList[i].Versions[j].EditDate.ToString());

// <FolderPath />
writer.WriteElementString("FolderPath", programList[i].Versions[j].FolderPath);

// <Files>
writer.WriteStartElement("Files");

for (int k=0; k<programList[i].Versions[j].FileList.Count; k++)
{
// <File />
writer.WriteElementString("File", programList[i].Versions[j].FileList[k]);
}

// </Files>
writer.WriteEndElement();

// </Version>
writer.WriteEndElement();
}

// </Versions>
writer.WriteEndElement();

// </Program>
writer.WriteEndElement();
}

// </Programs>
writer.WriteEndElement();

writer.Flush();
writer.Close();
}
[/code]

위의 형식대로 파일을 기록하게 되면 아래와 같은 구조의 XML 파일이 생성되게 된다.

생성된 XML 파일

[code lang=”xml”]
<?xml version="1.0"?>
<!–This file stores application version list–>
<Programs>
<Program>
<ID>ZemnaAutoUpdater</ID>
<Name>Zemna Auto Updater</Name>
<Contents>하하하하하</Contents>
<RegistrationDate>2009-02-27 오전 11:28:02</RegistrationDate>
<Versions>
<Version>
<VersionNo>1.0.0</VersionNo>
<RegistrationDate>2009-02-27 오전 11:28:02</RegistrationDate>
<EditDate>2009-02-27 오전 11:28:02</EditDate>
<FolderPath>cadfasd</FolderPath>
<Files>
<File>123.tx</File>
</Files>
</Version>
</Versions>
</Program>
</Programs>
[/code]

zemna

Programmer/Web/Mobile/Desktop

You may also like...

Leave a Reply