2013年12月19日 星期四

[C#] 使用XmlDocument與XmlElement類別建立基本XML文件

說明:想產生一份XML文件,該怎麼做?
如:
<Document>
  <Master>
    <Field name="ID" value="12345">
  </Head>
  <Detail>
    <Field name="Name" value="SBC">
    <Field name="Sex" value="Male">
  </Detail>
</Document>


作法:
0. 需引用System.Xml命名空間;

1. 首先使用XmlDocument建構一XML object,例:
XmlDocument xdTest = new XmlDocument();

2. 因XML是由許多節點所組成,因此使用XmlDocument提供的CreateElement方法來建立節點,並assign給XmlElement object,例:
XmlElement xeDocument = xdTest.CreateElement("Document");

可使用<List>XmlElement xeDocument = new List<XmlElement>();
使用迴圈將節點加進去,例:
xeDocument.Add(xdTest.CreateElement("Field"));

xeDocument[index] = xdTest.CreateElement("Field");

3. 設定節點的屬性,如<Field name="ID" value="12345">,Field此節點下有兩個屬性(name與value),透過XmlElement的SetAttribute方法來設定屬性,例:
xeField.SetAttribute("name", "ID");
xeField.SetAttribute("value", "12345");

4. 最後使用XmlElement.AppendChild方法將子節點一層一層加回根節點與XmlDocument object,建立階層關係,例:
xeMaster.AppendcChild(xeField);
xdTest.AppendChild(xeDocument);

5. 接著使用XmldDocument的InnerXml屬性即可檢視產生之XML,例:
string strXml = xdTest.InnerXml;

6. 若要匯出文件,可使用XmlTextWriter類別,例:
XmlTextWriter writer = new XmlTextWriter(@"C:\Test.xml", encoding);
//設定是否縮排
writer.Formatting = Formatting.Indented;
xdTest.Save(writer);


參考資料:
http://www.wangqi.com/html/2007-01/9824.htm
http://www.dotblogs.com.tw/killysss/archive/2010/01/06/12853.aspx
http://www.dotblogs.com.tw/yc421206/archive/2010/08/10/17108.aspx

沒有留言:

張貼留言