C#.net读写XML文件

本文通过一个详细的示例介绍了如何使用C#中的XmlTextWriter类来手动编写XML文档。包括XML声明、实体引用、处理指令、注释等内容的写入方法,并展示了如何处理特殊字符。

WriteRaw手工写入一行,不作任何处理

writer.WriteRaw("this&that");

WriteEntityRef写入实体引用,即前面加“&”后面加“;”

writer.WriteEntityRef("h");

WriteProcessingInstruction写入处理指令,

writer.WriteProcessingInstruction("xml-stylesheet",PItext);
即前面加“<?”后面加“?>”

WriteComment写入注释,自动加入注释标志“<!--”和“-->”

writer.WriteComment("sampleXML");

Flush把缓存中的内容写入文件

writer.Flush();

Close关闭,如有未闭合的元素,自动闭合

writer.Close();

其中WriteString方法会对字符串进行下述处理:

1.字符“&”、“<”和“>”转化为“&”、“<”和“>”。

2.ASCII码为0~1F(十六进制)的字符转化为“&#0”~“F”。

3.如果是在写属性的值则双引号“””转化为“"”;单引号“’”转化为“&apos;”。


下面给大家写出一个例程,由于注释比较详细就不作过多解释了。

usingSystem;
usingSystem.IO;
usingSystem.Xml;

publicclassSample
{
privateconststringfilename="sampledata.xml";

publicstaticvoidMain()
{
XmlTextWriterwriter=null;

writer=newXmlTextWriter(filename,null);
//为使文件易读,使用缩进
writer.Formatting=Formatting.Indented;

//写XML声明
writer.WriteStartDocument();

//引用样式
StringPItext="type='text/xsl'href='book.xsl'";
writer.WriteProcessingInstruction("xml-stylesheet",PItext);

//WritetheDocumentTypenode
writer.WriteDocType("book",null,null,"<!ENTITYh'hardcover'>");

//写入注释
writer.WriteComment("sampleXML");

//写一个元素(根元素)
writer.WriteStartElement("book");

//genre属性
writer.WriteAttributeString("genre","novel");

//ISBN属性
writer.WriteAttributeString("ISBN","1-8630-014");

//书名元素
writer.WriteElementString("title","TheHandmaid'sTale");

//Writethestyleelement
writer.WriteStartElement("style");
writer.WriteEntityRef("h");
writer.WriteEndElement();

//价格元素
writer.WriteElementString("price","19.95");

//写入CDATA
writer.WriteCData("Prices15%off!!");

//关闭根元素
writer.WriteEndElement();

writer.WriteEndDocument();

//缓冲器内的内容写入文件
writer.Flush();
writer.Close();

XmlDocumentdoc=newXmlDocument();

doc.PreserveWhitespace=true;
//加载文件
doc.Load(filename);

//XML文件的内容显示在控制台
Console.Write(doc.InnerXml);
//等待用户阅读
Console.In.Read();
}
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值