Languages/C#2010. 5. 21. 13:27

XML 파일을 문자열로 생성하고 읽어 들이는 방법입니다.

 

        /// <summary>

        /// XML 생성

        /// </summary>

        private void CreateXML()

        {

            // 생성할 XML 파일 경로와 이름, 인코딩 방식을 설정합니다.

            XmlTextWriter textWriter = new XmlTextWriter(@"C:\example.xml", Encoding.UTF8);

 

            // 들여쓰기 설정

            textWriter.Formatting = Formatting.Indented;

 

            // 문서에 쓰기를 시작합니다.

            textWriter.WriteStartDocument();

 

            // 루트 설정

            textWriter.WriteStartElement("root");

 

            // 노드와 값 설정

            textWriter.WriteStartElement("root_a");

            textWriter.WriteString("a");

            textWriter.WriteEndElement();

 

            // 노드 안에 하위 노드 설정

            textWriter.WriteStartElement("root_b");

 

            textWriter.WriteStartElement("b");

            textWriter.WriteString("b");

            textWriter.WriteEndElement();

 

            textWriter.WriteStartElement("bb");

            textWriter.WriteString("bb");

            textWriter.WriteEndElement();

 

            textWriter.WriteEndElement();

 

            textWriter.WriteStartElement("root_c");

            textWriter.WriteString("1");

            textWriter.WriteEndElement();

 

            textWriter.WriteEndElement();

 

            textWriter.WriteEndDocument();

            textWriter.Close();

        }

 

        /// <summary>

        /// XML 파일 읽기

        /// </summary>

        private void ReadXML()

        {

            try

            {

                XmlDocument xmldoc = new XmlDocument();

                xmldoc.Load(@"C:\example.xml");

                XmlElement root = xmldoc.DocumentElement;

 

                // 노드 요소들

                XmlNodeList nodes = root.ChildNodes;

 

                // 노드 요소의 값을 읽어 옵니다.

                foreach (XmlNode node in nodes)

                {

                    switch (node.Name)

                    {

                        case "root_a":

                            string a = node.InnerText;

                            break;

 

                        case "root_b":

                            string b = node["b"].InnerText;

                            string bb = node["bb"].InnerText;

                            break;

 

                        case "root_c":

                            int c = int.Parse(node.InnerText);

                            break;

                    }

                }

            }

            catch (IOException ex)

            {

                Console.WriteLine(ex.ToString());

            }

        }

'Languages > C#' 카테고리의 다른 글

[ C# ] C# FTP Download  (3) 2010.07.21
[ C# ] Default Sound Device 변경하기  (0) 2010.07.19
[ C# ] Network 연결 확인  (0) 2010.05.21
소수점 자릿수 출력하기  (0) 2009.04.11
c#으로 툴바 만들기  (2) 2009.03.30
Posted by 열ㅇl