2008년 12월 19일 금요일

[C#] XML 만들어 주는 Method

using System.Collections.Specialized; // 반드시 추가해줘야 합니다.
using System.Xml; // Xml을 만들어야 하니까 역시 추가되어야겠죠.

namespace Test
{
       public string XmlCreate(NameValueCollection NameValue)
       {
              if (NameValue.Count > 0)
               {
                     XmlDocument Doc = new XmlDocument();

                     XmlDeclaration newDec = Doc.CreateXmlDeclaration("1.0", "utf-8", null);
                     Doc.AppendChild(newDec);

                     XmlElement Worklist = Doc.CreateElement("worklist");
                     Doc.AppendChild(Worklist);

                     XmlElement Request = Doc.CreateElement("request");
                     Request.SetAttribute("object", "REPORT");
                     Request.SetAttribute("action", "SAVE");
                     Worklist.AppendChild(Request);

                     XmlElement Report = Doc.CreateElement("report");
                     Request.AppendChild(Report);

                     XmlElement ChildData = null;
                     for (int iIndex = 0; iIndex < NameValue.Count; iIndex++)
                     {
                            ChildData = Doc.CreateElement(NameValue.GetKey(iIndex).ToString());
                            ChildData.InnerText = NameValue[iIndex].ToString();
                            Report.AppendChild(ChildData);
                     }

                     XmlElement User_Key = Doc.CreateElement("user_key");
                     User_Key.InnerText = "18";
                     Worklist.AppendChild(User_Key);

                     XmlElement Level_Code = Doc.CreateElement("level_code");
                     Level_Code.InnerText = "100";
                     Worklist.AppendChild(Level_Code);

                     return Doc.InnerXml.Replace(@"\", "");;
              }
              else
                     return "";
       }
}

일단 Method(function)은 위와 같고 이 기능을 사용하려면...

       NameValueCollection NameValue = new NameValueCollection();

       NameValue.Add("study_key", "");
       NameValue.Add("transcriber_key", "");
       NameValue.Add("dictator_key", "");
       NameValue.Add("approver_key", "");
       NameValue.Add("reviser_key", "");
       NameValue.Add("auto_update", "");
       NameValue.Add("report_text", "");
       NameValue.Add("user_comments", "");
       NameValue.Add("study_comments", "");

string strXml = XmlCreate(NameValue);


이렇게 사용하면 됩니다.
넣고자 하는 tag에 해당하는 data를 string형태로 입력하면 strXml에 Xml이 만들어져서 들어갑니다.
//--------------------------------------------------------------------------

저처럼 XML 때문에 삽질하시는 분이 계실까봐... ^^;

0 개의 댓글:

댓글 쓰기