본문 바로가기

프로그래밍/C#

[C#] XML 파일 쓰기 (줄 바꿈 등 출력 형식 지정)

반응형

 

 

 

XML 파일 쓰기

 

StringWriter sw = new StringWriter();
using (XmlWriter writer = XmlWriter.Create(sw))
{
	writer.WriteStartDocument();
	writer.WriteStartElement("root"); // 루트 요소 쓰기
	writer.WriteAttributeString("num", "001"); // 루트 속성 쓰기
	writer.WriteElementString("name", "꽁쥐"); // name 요소 쓰기
	writer.WriteElementString("hobby", "study"); // hobby 요소 쓰기
	writer.WriteEndElement(); // 루트 요소 닫기
	writer.WriteEndDocument();
	writer.Flush();
    
	Response.Clear();
	Response.Buffer = true;
	Response.AddHeader("content-disposition", "attachment;filename=ggmouse.xml";
	Response.AddHeader("Pragma", "no-cache");
	Response.ContentType = "application/xml";
	Response.Charset = "UTF-8";
	Response.ContentEncoding = Encoding.UTF8;
	Response.Write(sw.ToString());
	Response.Flush();
	Response.End();
}

 

 

결과 XML 문서 내용

 

<?xml version="1.0" encoding="utf-8"?><root num="001"><name>꽁쥐</name><hobby>study</hobby></root>

 

 

 

 

 

 

XmlWriterSettings

 

StringWriter sw = new StringWriter();
XmlWriterSettings settings = new XmlWriterSettings {
	Indent = true,
	IndentChars= "  ";
	NewLineChars = "\r\n",
	NewLineHandling = NewLineHandling.Replace,
	OmitXmlDeclaration = false
}
using (XmlWriter writer = XmlWriter.Create(sw, settings))
{
	writer.writeStartDocument();
	writer.writeStartElement("root"); // 루트 요소 쓰기
	writer.WriteAttributeString("num", "001"); // 루트 속성 쓰기
	writer.writeElementString("name", "꽁쥐"); // name 요소 쓰기
	writer.writeElementString("hobby", "study"); // hobby 요소 쓰기
	writer.WriteEndElement(); // 루트 요소 닫기
	writer.WriteEndDocument();
	writer.Flush();
    
	Response.Clear();
	Response.Buffer = true;
	Response.AddHeader("content-disposition", "attachment;filename=ggmouse.xml";
	Response.AddHeader("Pragma", "no-cache");
	Response.ContentType = "application/xml";
	Response.Charset = "UTF-8";
	Response.ContentEncoding = Encoding.UTF8;
	Response.Write(sw.ToString());
	Response.Flush();
	Response.End();
}

 

결과 XML 문서 내용

 

<root num="001">
	<name>꽁쥐</name>
	<hobby>study</hobby>
</root>

 

 

 

XmlWriterSettings의 속성

 

속성 설명 기본값
Encoding 사용할 텍스트 인코딩 System.Text.Encoding  Encoding.UTF8
Indent 요소의 들여쓰기 여부 true / false false
IndentChars 들여쓸 때 사용할 문자열 문자열 공백 2개
NewLineChars 줄 바꿈에 사용할 문자열 문자열 \r\n
NewLineHandling 줄 바꿈 문자를 처리하는 방법 System.Xml.NewLineHandling  Replace
NewLineOnAttributes 특성을 개별 줄에 쓸지 여부 true / false false
OmitXmlDeclaration XML 선언을 쓸지 여부 true / false false

 

 

 

 

[C#] XML 데이터를 JSON 문자열로 파싱 (xml to json)
[C#] JSON 문자열 XML로 파싱 (json to xml)
[MSSQL] XML 데이터를 테이블 형태로 저장 (XML to DB)
https://docs.microsoft.com/ko-kr/dotnet/api/system.xml.xmlwritersettings?view=netframework-4.8

 

 

 

반응형