반응형
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
반응형
'프로그래밍 > C# ' 카테고리의 다른 글
[C#] Timer 타이머 (특정 시간마다 이벤트 반복 수행) (5) | 2021.02.25 |
---|---|
[C#] 개체 참조가 개체의 인스턴스로 설정되지 않았습니다. (2) | 2019.10.01 |
[JavaScript/C#] GET 방식으로 배열 값 전송 (JSON.stringfy, JsonConvert.DeserializeObject) (0) | 2019.05.23 |
[C#] MVC View (Razor) (0) | 2018.10.22 |
[C#] MVC Model (0) | 2018.10.22 |