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.jb51.cc/ );
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.jb51.cc/ */ 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.jb51.cc/ ); xmlWriter.WriteEndElement(); xmlWriter.WriteEndDocument(); } //将xml内容输出到控制台中 string xml = Encoding.UTF8.GetString(ms.ToArray()); Console.WriteLine(xml); } Console.Read(); } } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。