详细介绍使用XmlWriter写Xml的示例代码
16lz
2021-01-22
假定创建了XmlWriter的实例变量xmlWriter,下文中将使用此实例变量写Xml
1.如何使用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(); } }}
更多相关文章
- 解析XML和JSON内容的一点技巧的实例代码分享
- 详解XML命名空间(XML Namespaces)介绍以及节点读取方法的示例代码
- xml创建根节点、子节点的示例代码分享
- 读取XML文件时报“前言中不允许有内容”错误处理办法详解
- web.xml文件内容详细分析
- Server.xml内容详解【Tomcat】
- java通过XPath解析xml节点的代码详解
- 用户列表的10篇内容推荐
- 网页实例的10篇内容推荐