<?xml version="1.0" encoding="utf-8" ?>
<booklist>
<book id="b1" kind="컴퓨터">
<title>기초에서 실무까지 XML</title>
<author>신민철</author>
<publisher>프리렉</publisher>
<price>35000</price>
</book>
<book id="b2" kind="소설">
<title>사랑과 전쟁</title>
<author>이사랑</author>
<publisher>전쟁문화사</publisher>
<price>15000</price>
</book>
<book id="b3" kind="잡지">
<title>마이크로 소프트</title>
<author>빌 게이츠</author>
<publisher>마소문화사</publisher>
<price>20000</price>
</book>
<book id="b4" kind="소설">
<title>액션가면부인 바람났네</title>
<author>짱구</author>
<publisher>짱구출판사</publisher>
<price>12000</price>
</book>
</booklist>
위 문서를 C#으로 읽어 들이기 위해 XmlDocument 개체를 이용한다.
using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;using System.Xml;
namespace CH11
{
class p556
{
static void Main()
{
string filePath = @"..\..\booklist.xml";
XmlDocument xDoc = new XmlDocument();
xDoc.Load(filePath);XmlElement eBook = xDoc.DocumentElement;
XmlElement eFirstBook = (XmlElement)eBook.FirstChild;
XmlNodeList nlChilds = eFirstBook.ChildNodes;for (int i = 0; i < nlChilds.Count; i++)
{
XmlElement eChild = (XmlElement)nlChilds[i];
Console.WriteLine(eChild.Name + ":" + eChild.InnerText);
}
}
}
}
XmlElement를 읽어 들인후 그 하위 노드의 리스트를 생성해서 for문을 이용해 loop를 돌리는 예제이다.
각각의 루프에서는 하위 자식노드의 갯수를 세서 그만큼의 자식 element를 생성하고 그 노드들을 제어한다.
위에보면 Javascript 등에서도 자주 봤던 .InnerText 가 눈에 띈다..