XmlWriter 개체로 XML 데이터 작성
XmlWriter 개체는 XML 데이터를 작성할 때 사용할 수 있는 다양한 Write 메서드를 제공하고 있습니다.
XmlWriter 개체에서 제공하는 Write 메서드의 종류에는 요소 쓰기, 특성 쓰기, 형식화된 데이터 쓰기 등이 있습니다.
요소 쓰기
XmlWriter 개체를 이용하여 요소를 쓸 때는 WriteStartElement, WriteElementString, WriteNode 메서드를 호출합니다.
WriteStartElement 메서드는 요소의 시작 태그를 쓸 때 사용합니다. 이 메서드를 이용하여 요소를 쓴 다음에는 요소의 끝을 쓰는 WriteEndElement 메서드를 호출해야 합니다.
public void WriteStartElement(string name);
public void WriteStartElement(string name, string ns);
public void WriteStartElement(string prefix, string name, string ns);
public void WriteEndElement();
WriteElementString 메서드는 문자열 값을 갖는 요소를 쓸 때 사용합니다.
public void WriteElementString(string name, string value);
public void WriteElementString (string name, string ns, string value);
public void WriteElementString (string prefix, string name, string ns, string value);
WriteNode 메서드는 XmlReader 개체 혹은 XPathNavigator 개체를 복사하여 쓰기 작업에 사용합니다.
public void WriteNode(XmlReader reader, bool defattr); //defattr: 기본 특성을 복사 여부
public void WriteNode(XPathNavigator navi, bool defattr);
다음의 예제 코드는 세 가지 방법으로 요소 쓰기를 사용하는 예제입니다. 먼저 "data.xml" 파일을 출력 파일로 설정한 XmlWriter 개체를 생성하여 books 루트 요소를 쓰고 두 개의 자식 요소 book을 쓰기 작업합니다. 첫 번째 book 요소의 자식 요소인 title을 쓸 때는 WriteStartElement 메서드를 이용하였고 두 번째 book 요소의 자식 요소인 title을 쓸 때는 WriteElementString 메서드를 이용하였습니다.
그리고 작성한 "data.xml" 파일을 소스 파일로 설정한 XmlReader 개체를 생성하고 Console.Out을 출력 파일로 설정한 XmlWriter 개체를 생성한 후에 XmlReader 개체를 이용하여 데이터를 복사하여 콘솔 화면에 출력할 때 WriteNode 메서드를 이용하였습니다.
static void Main(string[] args) { XmlWriterSettings settings = new XmlWriterSettings(); settings.Indent = true; XmlWriter writer = XmlWriter.Create("data.xml", settings);
writer.WriteComment("XmlWriter 개체로 요소 쓰기"); writer.WriteStartElement("books"); //루트 요소 쓰기
writer.WriteStartElement("book");//book 요소 쓰기 writer.WriteStartElement("title");//title 요소 쓰기 writer.WriteName("XML.NET"); writer.WriteEndElement();//title 요소 닫기 writer.WriteStartElement("가격");//가격 요소 쓰기 writer.WriteValue(12000); writer.WriteEndElement();//가격 요소 닫기 writer.WriteEndElement();//book 요소 닫기
writer.WriteStartElement("book");//book 요소 쓰기 writer.WriteElementString("title","ADO.NET");//title 요소와 값 쓰기 writer.WriteStartElement("가격");//가격 요소 쓰기 writer.WriteValue(15000); writer.WriteEndElement();//가격 요소 닫기 writer.WriteEndElement();//book 요소 닫기
writer.WriteEndElement();//루트 요소 닫기 writer.Close();
XmlReader xreader = XmlReader.Create("data.xml"); //XmlReader 개체 생성 XmlWriter xwriter = XmlWriter.Create(Console.Out); //콘솔 출력 스트림으로 XmlWriter 개체 생성 xwriter.WriteNode(xreader, false); //xreader 개체로 읽어온 데이터를 xwriter 개체에 복사 xwriter.Close(); xreader.Close(); } |
[소스] XmlWriter 개체로 요소 쓰기 예제 코드
<?xml version="1.0" encoding="utf-8"?> <!--XmlWriter 개체로 요소 쓰기--> <books> <book> <title>XML.NET</title> <가격>12000</가격> </book> <book> <title>ADO.NET</title> <가격>15000</가격> </book> </books> |
[문서] XmlWriter 개체로 요소 쓰기 예제를 실행했을 때 만들어지는 "data.xml" 파일 내용
[그림]실행 화면
'프로그래밍 기술 > XML.NET' 카테고리의 다른 글
[XML.NET] 14. 외부 자원을 소스로 하는 XmlReader 개체 만들기 (0) | 2016.04.18 |
---|---|
[XML.NET] 13. XmlReader 개체 만들기 예제 (0) | 2016.04.18 |
[XML.NET] 12. XmlReaderSettings 개요 (0) | 2016.04.18 |
[XML.NET] 12. XmlReader 개요 (0) | 2016.04.18 |
[XML.NET] 11. XmlWriter 개체로 XML 데이터 작성(Attribte 쓰기) (0) | 2016.04.18 |
[XML.NET] 9. XmlWriter 개체 만들기 예제 (0) | 2016.04.18 |
[XML.NET] 8. XmlWriterSettings 개요 (0) | 2016.04.18 |
[XML.NET] 7. XmlWriter 개요 (0) | 2016.04.18 |
[XML.NET] 6. XML 문서 구조 - XML 스키마(XML Schema) (0) | 2016.04.18 |
[XML.NET] 5. XML 문서 구조 DTD (0) | 2016.04.18 |