본문 바로가기

C#/XML

[C#] XmlString to Object 파싱

[C#] XmlString to Object

 

1. XML String

var xmlString = "<datas><MessageInfo>" +
                "<MyId>a</MyId>" +
                "<YourId>b</YourId>" +
                "<Msg1>c</Msg1>" +
                "<Msg2>d</Msg2>" +
                "<Msg3>1</Msg3>" +
                "</MessageInfo></datas>";

 

2. 클래스 생성

public class MessageInfo
{
    public string MyId { get; set; }
    public string YourId { get; set; }
    public string Msg1 { get; set; }
    public string Msg2 { get; set; }
    public string Msg3 { get; set; }
}

 

3-1. XDocument를 이용한 파싱

var doc = XDocument.Parse(xmlString);
var root = doc.Element("datas");
List<MessageInfo> list = new List<MessageInfo>();
foreach (XElement element in root.Elements())
{
    MessageInfo data = new MessageInfo();
    data.MyId = element.Element("MyId").Value;
    data.YourId = element.Element("YourId").Value;
    data.Msg1 = element.Element("Msg1").Value;
    data.Msg2 = element.Element("Msg2").Value;
    data.Msg3 = element.Element("Msg3").Value;
 
    list.Add(data);
}

 

3-2. XmlSerializer를 이용한 파싱

XmlSerializer serializer = new XmlSerializer(typeof(List<MessageInfo>), new XmlRootAttribute("datas"));
StringReader stringReader = new StringReader(xmlString);
List<MessageInfo> messageInfoList = (List<MessageInfo>)serializer.Deserialize(stringReader);

 

 

'C# > XML' 카테고리의 다른 글

[C#] XmlHelper / XML 총정리  (0) 2020.09.11
[C#] XML 생성/쓰기 및 노드 추가하기  (0) 2020.09.08
[C#] XML 읽기  (0) 2020.09.04