软件测试开发技术.Net中的XmlReader与XmlWriter解析[2] .Net网站架构
关键字:.Net XmlReader XmlWriter
检索属性数据
AttributeCountry属性确定属性个数。GetAttribute()方法按照名称或索引来获取属性,如果要一次迭代一个属性就可以使用MoveToFirstAttribute()和MoveToNextAttribute()方法。
richTextBox1.Clear();
XmlReader tr = XmlReader.Create("book.xml");
while (tr.Read()){
if (tr.NodeType == XmlNodeType.Element){
for (int i = 0; i < tr.AttributeCount; i++){
richTextBox1.AppendText(tr.GetAttribute(i)+"\r\n");
}
}
}
使用XmlReader类进行验证
有时不但要知道文档的格式是规范的,还是确定文档是有效的。
XmlReader可以使用XmlReaderSettings,根据XSD模式验证XML。XSD模式添加到XMLSchemaSet中,通过Schema属性可以访问XMLSchemaSet。XsdValidate属性还必须设置为ture,这个属性默认为flase.
XmlWriter类可以把Xml写入一个流、文件、StringBuilder,TextWriter或另一个XmlWriter对象中。与XmlReader一样,XmlWriter类以只向前、未缓存的方式 进行写入。
使用XmlWirterSettings对旬进行是否缩进文本、缩进量等配置。
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true; //是否缩进
settings.NewLineOnAttributes = true;//把每个属性写在一行,这样做可以更容易读取
XMLXmlWriter writer = XmlWriter.Create("booknew.xml",settings);
writer.WriteStartDocument();
writer.WriteStartElement("book");
writer.WriteAttributeString("genre","Mystery");
writer.WriteAttributeString("publicationdate","2001");
writer.WriteAttributeString("ISBN","123456489");
writer.WriteElementString("title","Case of the Money");
writer.WriteStartElement("author");
writer.WriteElementString("name","Cookie Monster");
writer.WriteEndElement();
writer.WriteElementString("price","9.99");
writer.WriteEndDocument();
writer.Flush();
writer.Close();
·使用XmlWriterSettings实例对象进行生成的XML的设置。
·使用Create(),返回一个XmlWriter对象,其中Create(),第一个参数为Xml的名字,第二个参数为XmlWriterSettings实例对象。
·使用WriterStartDocument()中文档声明,开始写入数据,以WriteEndDocument()结束。注间控制元素的嵌套,注注意WriterStartElement()和WriterEndElement()的调用与位置。
·还有一些专用的写入方法。WriteCData()可以输出一个CData部分(),WriterComment()以正确的XML格式写入注释。WriteChae()写入字符缓冲区的内容。