XML 작성
IT하다보면 XML과 관련된 일이나 업무가 많을텐데
이상하게 제가 직접 작성한다던지 (Config 말고) 뭔가 직접 작업하는건 없는듯하네요...
2가지의 방법을 서술합니다.
기본적으로 XmlDocument로 기본 뼈대(?) 객체를 생성후
이 뼈대에 Element들을 계속 붙여나가는 방식 이라 하면 될까나?
using System.Xml;
static void BuildXml()
{
XmlDocument doc = new XmlDocument(); //Document 객체 인스턴스
XmlElement inventory = doc.CreateElement("Root");
XmlElement car = doc.CreateElement("A");
car.SetAttribute("ID", "1000");
XmlElement name = doc.CreateElement("A1");
name.InnerText = "Name";
XmlElement color = doc.CreateElement("A2");
color.InnerText = "Orange";
XmlElement maker = doc.CreateElement("A3");
maker.InnerText = "ABC company";
car.AppendChild(name); //각 xml element간 관계설정
car.AppendChild(color);
car.AppendChild(maker);
inventory.AppendChild(car);
doc.AppendChild(inventory);
doc.Save("Inventory.xml"); // XML 생성
}
실행결과
위와 같은 결과를 다른 방식으로
using System.Xml.Linq;
static void BuildXmlWithLINQ()
{
XElement doc =
new XElement("Root",
new XElement("A", new XAttribute("ID", "1000"),
new XElement("A1", "Name"),
new XElement("A2", "Orange"),
new XElement("A3", "ABC companay")
)
);
doc.Save("InventoryLinq.xml");
}
위에 비해서 상당히 간단히 만들어졌습니다.
'프로그래밍&IT > C#' 카테고리의 다른 글
C# DataTable에서 Datarow 핸들링, Add select Update Delete (0) | 2015.04.06 |
---|---|
C# 에서 정규표현식 - Regex.IsMatch 이용 (0) | 2015.03.29 |
this의 3가지 용법 체크 (0) | 2014.12.02 |
코드 리팩토링(refactoring) 관련 & 메소드 추출하기 (0) | 2014.11.16 |
C# 접근 제한자 / 접근자 관련 (private, public, protected ...) (0) | 2014.11.15 |