'XmlAttribute'에 해당되는 글 1건

  1. 2007.03.26 XmlAttributeCollection을 이용한 어트리뷰트 탐색
posted by 써니루루 2007. 3. 26. 10:21
읽어들일 XML 파일 'booklist.xml'

<?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>


이번 예제는 XmlAttributeCollection을 이용해 element에 속한 attribute를 collection으로 가져와서 loop를 이용해 출력하는 예제를보여준다.

using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;

using System.Xml;

namespace CH11
{
    class p559_FindAttribute
    {
        static void Main()
        {
            string filePath = @"..\..\booklist.xml";
            XmlDocument xDoc = new XmlDocument();
            xDoc.Load(filePath);

            XmlElement eBook = xDoc.DocumentElement;
            XmlElement eFirstBook = (XmlElement)eBook.FirstChild;

            XmlAttributeCollection attributes = eFirstBook.Attributes;

            // loop를 이용한 attribute 탐색
            for (int i = 0; i < attributes.Count; i++)
            {
                XmlAttribute attribute = (XmlAttribute)attributes[i];
                Console.WriteLine(attribute.Name + "\t" + attribute.Value);
            }

            // 직접 attribute 출력
            string id = eFirstBook.GetAttribute("id");
            Console.WriteLine("id:\t" + id);

            string kind = eFirstBook.GetAttribute("kind");
            Console.WriteLine("kind:\t" + kind);
        }
    }
}

attribute를 탐색할때 위 예제와 같이 활용하면 되겠다.

ref. .NET 닷넷 개발자를 위한 XML p.559