假定建立了XmlWriter的實例變數xmlWriter,下文將使用此實例變數寫入Xml
1.如何使用XmlWriter寫Xml文件宣告
// WriteStartDocument方法可以接受一个bool参数(表示standalone,是否为独立文档)或者不指定参数standalone保持默认值 xmlWriter.WriteStartDocument(false|true);
注意在使用WriteStartDocument方法後最好調用xmlWrite.WriteEndDocument()方法來關閉所有可能未關閉標籤
2.如何使用XmlWriter寫xml節點以及屬性
//写节点 xmlWriter.WriteStartElement("cat"); //给节点添加属性 xmlWriter.WriteAttributeString("color", "white"); //给节点内部添加文本 xmlWriter.WriteString("I'm a cat"); xmlWriter.WriteEndElement();
或透過WriteElementString(string,string)方法寫入xml節點同時寫下節點值,如下
##
//通过WriteElementString可以添加一个节点同时添加节点内容 xmlWriter.WriteElementString("pig", "pig is great");
3.如何寫CData
xmlWriter.WriteStartElement("dog"); //写CData xmlWriter.WriteCData("<strong>dog is dog</strong>"); xmlWriter.WriteEndElement();
4.如何使用XmlWriter新增註解
xmlWriter.WriteComment("this is an example writed by 玉开技术博客 http://www.php.cn/ ");
5.如何設定XmlWriter的輸出格式,解決輸出UTF-16問題設定xml輸出格式,需要透過XmlWriterSettings類,如下程式碼
XmlWriterSettings settings = new XmlWriterSettings(); //要求缩进 settings.Indent = true; //注意如果不设置encoding默认将输出utf-16 //注意这儿不能直接用Encoding.UTF8如果用Encoding.UTF8将在输出文本的最前面添加4个字节的非xml内容 settings.Encoding = new UTF8Encoding(false); //设置换行符 settings.NewLineChars = Environment.NewLine;
完整的程式碼範例如下:
/*玉开技术博客 http://www.php.cn/ */ using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Xml; namespace UseXmlWriter { class Program { static void Main(string[] args) { using (MemoryStream ms = new MemoryStream()) { XmlWriterSettings settings = new XmlWriterSettings(); //要求缩进 settings.Indent = true; //注意如果不设置encoding默认将输出utf-16 //注意这儿不能直接用Encoding.UTF8如果用Encoding.UTF8将在输出文本的最前面添加4个字节的非xml内容 settings.Encoding = new UTF8Encoding(false); //设置换行符 settings.NewLineChars = Environment.NewLine; using (XmlWriter xmlWriter = XmlWriter.Create(ms, settings)) { //写xml文件开始 xmlWriter.WriteStartDocument(false); //写根节点 xmlWriter.WriteStartElement("root"); //写字节点 xmlWriter.WriteStartElement("cat"); //给节点添加属性 xmlWriter.WriteAttributeString("color", "white"); //给节点内部添加文本 xmlWriter.WriteString("I'm a cat"); xmlWriter.WriteEndElement(); //通过WriteElementString可以添加一个节点同时添加节点内容 xmlWriter.WriteElementString("pig", "pig is great"); xmlWriter.WriteStartElement("dog"); //写CData xmlWriter.WriteCData("dog is dog"); xmlWriter.WriteEndElement(); xmlWriter.WriteComment("this is an example writed by 玉开技术博客 http://www.php.cn/ "); xmlWriter.WriteEndElement(); xmlWriter.WriteEndDocument(); } //将xml内容输出到控制台中 string xml = Encoding.UTF8.GetString(ms.ToArray()); Console.WriteLine(xml); } Console.Read(); } } }
#
以上是詳細介紹使用XmlWriter寫Xml的範例程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!