Physical Address

304 North Cardinal St.
Dorchester Center, MA 02124

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

이번에는 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;

}

Leave a Reply

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