加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用XmlWriter写Xml

发布时间:2020-12-16 05:57:07 所属栏目:百科 来源:网络整理
导读:假定创建了XmlWriter的实例变量xmlWriter,下文中将使用此实例变量写Xml 1.如何使用XmlWriter写Xml文档声明 // WriteStartDocument方法可以接受一个bool参数(表示standalone,是否为独立文档)或者不指定参数standalone保持默认值 xmlWriter.WriteStartDocu

假定创建了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.cnblogs.com/yukaizhao " );

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.cnblogs.com/yukaizhao */
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 = 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.cnblogs.com/yukaizhao " );
xmlWriter.WriteEndElement();
xmlWriter.WriteEndDocument();
}
//将xml内容输出到控制台中
string xml = Encoding.UTF8.GetString(ms.ToArray());
Console.WriteLine(xml);
}
Console.Read();
}
}
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读