.NET
C# DataSet 클래스의 ReadXml 함수로 XML 파싱하기
leo21c
2024. 1. 5. 09:28
https://learn.microsoft.com/ko-kr/dotnet/api/system.data.dataset.readxml?view=net-8.0
DataSet.ReadXml 메서드 (System.Data)
XML 스키마와 데이터를 DataSet으로 읽어옵니다.
learn.microsoft.com
DataSet 클래스에 ReadXml 함수를 제공한다. 이 함수를 이용해서 XML을 파싱할 수 있다.
아래 샘플 XML 파일을 읽어 파싱하는 예제 함수를 만들었다.
<?xml version="1.0" encoding="utf-8"?>
<CONFIG>
<INFO>
<MODEL>Product</MODEL>
</INFO>
<DATA Type="Sample">
<ITEM No="0" Desc="Test1" />
<ITEM No="1" Desc="Test2" />
<ITEM No="2" Desc="Test3" />
<ITEM No="3" Desc="Test4" />
<ITEM No="4" Desc="Test5" />
<ITEM No="5" Desc="Test6" />
<ITEM No="6" Desc="Test7" />
<ITEM No="7" Desc="Test8" />
</DATA>
</CONFIG>
위와 같은 XML을 파싱할 때 어떻게 DataSet 클래스를 이용하는지 아래 샘플 코드를 참고 한다.
public bool ParseXML(string fileName)
{
System.Xml.XmlReader xmlFile;
System.Data.DataSet dsXMLDataSet = new System.Data.DataSet();
string BaseDirectory = AppDomain.CurrentDomain.BaseDirectory;
string fileParh = Path.Combine(BaseDirectory, fileName);
if (System.IO.File.Exists(fileParh))
{
xmlFile = System.Xml.XmlReader.Create(fileParh, new System.Xml.XmlReaderSettings());
dsXMLDataSet.ReadXml(xmlFile);
//dsXMLDataSet.Tables[0] : <INFO>
string model = dsXMLDataSet.Tables[0].Rows[0]["MODEL"].ToString();
//dsXMLDataSet.Tables[1] : <DATA>
string type = dsXMLDataSet.Tables[1].Rows[0]["Type"].ToString();
//dsXMLDataSet.Tables[2] : <ITEM>
for (int i = 0; i < dsXMLDataSet.Tables[2].Rows.Count; i++)
{
string no = dsXMLDataSet.Tables[2].Rows[i]["No"].ToString();
string desc = dsXMLDataSet.Tables[2].Rows[i]["Desc"].ToString();
}
}
else
{
return false;
}
return true;
}
LIST