https://learn.microsoft.com/ko-kr/dotnet/api/system.data.dataset.readxml?view=net-8.0
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;
}
'.NET' 카테고리의 다른 글
C# PropertyGrid Attribute 종류 정리 (0) | 2023.12.26 |
---|---|
AutoResetEvent Class 샘플 예제 분석 (0) | 2023.10.24 |
System.Threading Monitor Class 예제 분석 (1) | 2023.10.24 |
C# delegate event, EventHandler 사용 예제 (0) | 2023.06.03 |
Network Interface Status Event (0) | 2023.05.24 |