Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Simple Developer
Simple Developer
이번에는 XML파일을 XmlTextReader 클래스를 이용하여 읽는 방법에 대해 살펴보도록 하자.
읽고자하는 XML 파일
위 파일을 읽는 코드는 아래와 같다.
XmlTextReader로 파일 읽기 샘플
List
{
// 데이터를 저장 할 변수 선언
List
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;
}