假定创建了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");//写CDataxmlWriter.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文件开始<?xml version="1.0" encoding="utf-8" ?>                    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("<strong>dog is dog</strong>");                    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();        }    }}

更多相关文章

  1. 解析XML和JSON内容的一点技巧的实例代码分享
  2. 详解XML命名空间(XML Namespaces)介绍以及节点读取方法的示例代码
  3. xml创建根节点、子节点的示例代码分享
  4. 读取XML文件时报“前言中不允许有内容”错误处理办法详解
  5. web.xml文件内容详细分析
  6. Server.xml内容详解【Tomcat】
  7. java通过XPath解析xml节点的代码详解
  8. 用户列表的10篇内容推荐
  9. 网页实例的10篇内容推荐

随机推荐

  1. [AndroidTips]Declaring a custom androi
  2. 最新eclipse中android插件安装下载地址
  3. Android带返回值的窗口跳转
  4. android edittext 去边框 去下划线
  5. Android全透明Activity示例
  6. appium測試中验证toast的正确性
  7. Android压缩
  8. 代码中如何设置TextView为不可见
  9. Android判断当前线程是否是主线程的方法
  10. Android(安卓)OpenGL ES(八)----纹理编程