EMDI는 지금도 개발중

C# : XmlDocument 사용해서 XML 생성 본문

언어/C#

C# : XmlDocument 사용해서 XML 생성

EMDI 2020. 3. 27. 09:25
XmlDocument xdoc = new XmlDocument();
// 루트노드
XmlNode root = xdoc.CreateElement("TaxInvoice");
xdoc.AppendChild(root);

XmlNode exchangedDocument = xdoc.CreateElement("ExchangedDocument");
XmlAttribute attr = xdoc.CreateAttribute("ID");
attr.Value = "201208064100000100000001";
exchangedDocument.Attributes.Append(attr);

XmlNode issueDt = xdoc.CreateElement("IssueDateTime");
issueDt.InnerText = "20120806174653";
exchangedDocument.AppendChild(issueDt);

XmlNode refDoc = xdoc.CreateElement("ReferencedDocument");
refDoc.InnerText = "201208064100000100000001";
exchangedDocument.AppendChild(refDoc);

root.AppendChild(exchangedDocument);

// XML 파일 저장
xdoc.Save(@"C:\Temp\taxInvoice.xml");

 /* 출력파일 taxInvoice.xml
<TaxInvoice>
  <ExchangedDocument ID="201208064100000100000001">
    <IssueDateTime>20120806174653</IssueDateTime>
    <ReferencedDocument>201208064100000100000001</ReferencedDocument>
  </ExchangedDocument>
</TaxInvoice>
*/

위의 내용은 단순 XML형식의 예시입니다. XML은 XmlDocument라는 것을 사용하여 XML형식을 만들 수 있습니다. XmlNode는 Xml 루트를 생성할 때 쓰입니다. XmlDocument안에 넣기 위해서는 AppendChild 옵션을 사용해야 합니다.

 

XmlNode exchangedDocument = xdoc.CreateElement("ExchangedDocument"); 
XmlAttribute attr = xdoc.CreateAttribute("ID"); 
attr.Value = "201208064100000100000001"; 
exchangedDocument.Attributes.Append(attr); 

XmlNode issueDt = xdoc.CreateElement("IssueDateTime"); 
issueDt.InnerText = "20120806174653"; 
exchangedDocument.AppendChild(issueDt);

위의 XmlNode는 언뜻보기에 비슷해보여도 출력되는 데이터는 다릅니다. ExchangedDocument는 ID라는 XmlAttribute를 추가한 것이고 밑의 IssueDateTime은 Value만 나오도록 설정한 것입니다.

 

// 새 xml문서 생성 
XmlDocument xdoc = new XmlDocument(); 

//  생성 
xdoc.AppendChild(xdoc.CreateXmlDeclaration("1.0", "UTF-8", ""));

위의 예시는 우리가 XML을 볼 때 많이 봤던 <?xml version="1.0" encoding="UTF-8"?> 문구입니다.

Comments