XML형식의 장단점, 사용법과 관련해서는 따로 인터넷을 공부해봐야겠음.
XML을 사용하기 위해서는 'using System.Xml'을 사용해 주어야 함.
- 생성
: XmlTextWriter 클래스를 생성 : 생성자에 '경로, 인코딩(Encoding.UTF8)'을 입력하면 해당 경로에 XML 생성함.
클래스의 Formatting = 'Formatting.Indented'설정 : 들여쓰기 설정.
WriteStartDocument() & WriteEndDocument() : 문서 작성의 시작 & 끝.
WriteStartElement("[Node 명]") & WriteEndElement() : Node 생성과 끝(<[Node 명]></[Node 명]> : 이걸 작성함.)
WriteString("[내용]") : Node 사이에 내용을 넣어주는 역할.
ex)
XmlTextWriter testXml = new XmlTextWriter();
testXml.Formatting = Formatting.Indented;
testXml.WriteStartDocument();
testXml.WriteStartElement("root"); //<root>
testXml.WriteStartElement("deck"); //<deck>
testXml.WriteStartElement("deckCode"); //<deckCode>
testXml.WriteString("AA");
testXml.WriteEndElement(); //</deckCode>
testXml.WriteStartElement("desc"); //<desc>
testXml.WriteString("1234");
testXml.WriteEndElement(); //</desc>
testXml.WriteStartElement("fullDesc"); //<fullDesc>
testXml.WriteString("AA-1234");
testXml.WriteEndElement(); //</fullDesc>
testXml.WriteEndElement(); //</deck>
testXml.WriteEndElement(); //</root>
......
testXml.WriteEndDocument();
- 읽기
: XmlDocument 클래스로 객체를 생성하여 Load([xmlPath])함수를 이용하여 읽어옴.
읽는 방법에도 여러가지가 있는 듯 함.
1. root를 읽어와서 ChildNodes를 통해 XmlNodeList 형식으로 nodeList를 뽑은뒤, loop구문을 통해 뽑아내기
2. XPath 문법과 SelectNodes("[XPath 형식의 String]")를 이용하여 nodeList를 뽑은 뒤 사용 할 수 도 있음.
(XPath String의 형식은 아래 참조 사이트에서 확인 가능)
예)
<root>
<deck> -----> 1, 2 검색 결과
<deckCode>AA</deckCode> -----> 3 검색 결과
<desc>1234</desc>
<fullDesc>AA-1234</fullDesc>
</deck>
<deck> -----> 1 검색 결과
....
</deck>
...
</root>
위와같은 XML Data가 있을경우 desc = 1234인 deck의 deckCode를 가져오기 위해서는
SelectNodes의 XPath String을 아래와 같이 작성한다.
"//deck[desc='1234']/deckCode"
//deck : 모든 노드중 deck Node --- 1
[desc = '1234'] : 조건, desc의 텍스트가 1234
-->//deck[desc='1234'] : desc의 텍스트가 1234인 노드를 갖는 deck 노드 --- 2
//deck[desc='1234']/deckCode : 조건에 맞게 검색된 deck노드 하위의 deckCode 노드. --- 3
참조 : (XML 장단점) http://kylog.tistory.com/44
(XML 장점) http://okky.kr/article/14307
(XML 읽기, 쓰기) http://shine10e.tistory.com/79
(XML 파일 탐색하기 - XPath 문법) http://funylife.tistory.com/entry/2-XPath의-기본문법을-알아보자
'Programing > C#' 카테고리의 다른 글
C#에서 Excel형식 File 다루기 (0) | 2017.02.07 |
---|---|
[MERGE INTO]데이터가 없으면 INSERT, 있으면 UPDATE (0) | 2017.02.06 |
C# Delegate ≒ C 함수 포인터 ?!? (0) | 2017.02.01 |
DataGridView에 Filter 생성하기 (0) | 2017.01.31 |
get{}set{} 사용 (0) | 2017.01.24 |