개발/c#
C# Xml Serialize
나무 :D
2021. 4. 17. 17:09
직렬화
using System.IO;
using System.Xml.Serialization;
public static class XmlUtil
{
public static string XmlSerialize<T>(T obj) where T : class
{
using (StringWriter writer = new StringWriter())
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
xmlSerializer.Serialize(writer, obj);
return writer.ToString();
}
}
public static T XmlDeserialize<T>(string path) where T : class
{
using (StreamReader reader = new StreamReader(path))
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
return xmlSerializer.Deserialize(reader) as T;
}
}
}
Object
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
[Serializable()]
[XmlRoot("result")]
public class CorpCodeTable : BaseTable
{
public static readonly string Key = "CorpCodeTable";
[XmlElement(ElementName = "list")]
public List<CorpCodeData> CorpCodeDataList { get; set; }
}
using System;
using System.Xml.Serialization;
[Serializable()]
[XmlRoot("list")]
public class CorpCodeData
{
[XmlElement("corp_code")]
public string corpCode;
[XmlElement("corp_name")]
public string corpName;
[XmlElement("stock_code")]
public string stockCode;
[XmlElement("modify_date")]
public string modifyDate;
}
사용 방법
CorpCodeTable corpCodeTable = XmlUtil.XmlDeserialize<CorpCodeTable>(filePath);
XML 데이터
<?xml version="1.0" encoding="UTF-8"?>
<result>
<list>
<corp_code>00434003</corp_code>
<corp_name>다코</corp_name>
<stock_code> </stock_code>
<modify_date>20170630</modify_date>
</list>
<list>
<corp_code>00434456</corp_code>
<corp_name>일산약품</corp_name>
<stock_code> </stock_code>
<modify_date>20170630</modify_date>
</list>
</result>
반응형