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(十六进制)的字符转化为“�”~“F”。
3.如果是在写属性的值则双引号“””转化为“"”;单引号“’”转化为“'”。
下面给大家写出一个例程,由于注释比较详细就不作过多解释了。
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();
}
}
本文通过一个详细的示例介绍了如何使用C#中的XmlTextWriter类来手动编写XML文档。包括XML声明、实体引用、处理指令、注释等内容的写入方法,并展示了如何处理特殊字符。
3086

被折叠的 条评论
为什么被折叠?



