XmlTextReader 클래스를 이용한 XML파일 읽기

Category:
Author: zemna
Date: April 17, 2021
Share this:

이번에는 XML파일을 XmlTextReader 클래스를 이용하여 읽는 방법에 대해 살펴보도록 하자.

읽고자하는 XML 파일


ZemnaAutoUpdater
Zemna Auto Updater
하하하하하
2009-02-27 오전 11:28:02


1.0.0
2009-02-27 오전 11:28:02
2009-02-27 오전 11:28:02
cadfasd

123.tx


위 파일을 읽는 코드는 아래와 같다.

XmlTextReader로 파일 읽기 샘플

List IDataProcessor.LoadList(string filePath)
{
// 데이터를 저장 할 변수 선언
List listPrg = null;

int piIdx = 0;  // Last ProgramInfo Index
int viIdx = 0; // Last VersionInfo Index

XmlTextReader reader = new XmlTextReader(filePath);

// 공백을 처리하지 않음
reader.WhitespaceHandling = WhitespaceHandling.None;

while (reader.Read())
{
reader.MoveToContent();

if (reader.NodeType == XmlNodeType.Element)
{
switch (reader.Name)
{
case "Program":
if (listPrg == null)
listPrg = new List();
ProgramInfo pi = new ProgramInfo();
listPrg.Add(pi);
piIdx = listPrg.Count - 1;
break;
case "ID":
listPrg[piIdx].ID = reader.ReadString();
break;
case "Name":
listPrg[piIdx].Name = reader.ReadString();
break;
case "Contents":
listPrg[piIdx].Contents = reader.ReadString();
break;
case "RegistrationDate":
if (reader.Depth == 2)
listPrg[piIdx].RegistrationDate = Convert.ToDateTime(reader.ReadString());
else
listPrg[piIdx].Versions[viIdx].RegistrationDate = Convert.ToDateTime(reader.ReadString());
break;
case "Version":
if (listPrg[piIdx].Versions == null)
listPrg[piIdx].Versions = new List();
VersionInfo vi = new VersionInfo();
listPrg[piIdx].Versions.Add(vi);
viIdx = listPrg[piIdx].Versions.Count - 1;
break;
case "VersionNo":
listPrg[piIdx].Versions[viIdx].VersionNo = reader.ReadString();
break;
case "EditDate":
listPrg[piIdx].Versions[viIdx].EditDate = Convert.ToDateTime(reader.ReadString());
break;
case "FolderPath":
listPrg[piIdx].Versions[viIdx].FolderPath = reader.ReadString();
break;
case "File":
if (listPrg[piIdx].Versions[viIdx].FileList == null)
listPrg[piIdx].Versions[viIdx].FileList = new List();
listPrg[piIdx].Versions[viIdx].FileList.Add(reader.ReadString());
break;
}
}
}

reader.Close();

return listPrg;

}

Share this:

Leave a Reply

Your email address will not be published. Required fields are marked *

Let's connect and create
something awesome together!
2023 - Copyright, All Rights Reserved, Made by ZEMNA.NET with ❤️
crossmenu linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram