C#에서 XML 데이터를 처리해야할 기능이 필요하여 이리 저리 찾은 내용을 정리한 글입니다. 먼저 사용할 XML 데이터는 아래와 같다고 하겠습니다.
The Autobiography of Benjamin Franklin Benjamin Franklin 8.99 The Confidence Man Herman Melville 11.99 The Gorgias Plato 9.99
가장 먼저 위의 XML 데이터를 쉽게 조회하기 위해 트리 형태로 구성하기 위한 준비 코드는 다음과 같습니다.
XmlTextReader reader = new XmlTextReader("books.xml"); XmlDocument xdoc = new XmlDocument(); xdoc.Load(reader);
자.. 이제 부터 원하는 데이터를 얻어 낼 수 있는데요. 다음과 같이 네 가지의 목표를 정하고 목표를 이루어 나가 보겠습니다.
- 은 몇개인가?
- 두번째 의의 값은 무엇인가?
- 두번째 의 속성 genre의 값은 무엇인가?
- 두번째 의 의 의 값은 무엇인가?
먼저 답은 다음과 같습니다.
- 3개
- The Confidence Man
- novel
- Herman
위의 답을 내어 내기 위한 코드를 하나 하나 제시해 보면 다음과 같습니다.
“은 몇개인가?”에 대한 코드
XmlNodeList bookNodes = xdoc.DocumentElement.SelectNodes("book"); Console.WriteLine(" 노드의 개수: " + bookNodes.Count);
“두번째 의의 값은 무엇인가?”에 대한 코드
XmlNode titleNode = bookNodes[1].SelectSingleNode("title"); Console.WriteLine("두번째 의의 값은: " + titleNode.InnerText);
“두번째 의 속성 genre의 값은 무엇인가?”에 대한 코드
String genre = bookNodes[1].Attributes["genre"].Value; Console.WriteLine(genre);
끝으로.. “두번째 의 의 의 값은 무엇인가?”에 대한 코드
String firstName = bookNodes[1].SelectSingleNode("author") .SelectSingleNode("first-name").InnerText; Console.WriteLine(firstName);
끝으로 이보다 효율적인 방법이 존재하겠지요? 알고 계시다면 한수 부탁드립니다!