之前学习的xml操作是运用XmlDocument对象来实现的,下面的是运用XmlTextWriter、XmlTextReader来操作的,XmlTextWriter对象是主要对xml文件进行写操作,而XmlTextReader主要是对xml文件进行读的操作
下面是XmlTextWriter对象操作的代码
//设置格式,对元素内容进行缩进
protected void btnAddXmlWriter_Click(object sender, EventArgs e)
{
string path=Server.MapPath(".");
//创建xmlwriter对象
XmlTextWriter xmlTextWriter = new XmlTextWriter(path + "//Student.xml",null);
//设置格式,对元素内容进行缩进
xmlTextWriter.Formatting = Formatting.Indented;
//书写版本为1.0的xml声明
xmlTextWriter.WriteStartDocument();
//写出在名称和文本之间带有空格的处理指令
string PItext = "type='text/xml' href='book.xml'";
xmlTextWriter.WriteProcessingInstruction("xml-stylesheet", PItext);
//增加指定名称和可选属性的DocType
xmlTextWriter.WriteDocType("学生", null, null, "<!ENTITY sex '男'>");
//增加注释
xmlTextWriter.WriteComment("xml注释");
//开始创建元素
xmlTextWriter.WriteStartElement("学生");
//创建属性
xmlTextWriter.WriteAttributeString("专业", " 计算机");
xmlTextWriter.WriteAttributeString("日期", "2008-09-01");
xmlTextWriter.WriteElementString("姓名", "李天平");//创建元素1
xmlTextWriter.WriteStartElement("性别");//创建元素2
xmlTextWriter.WriteEntityRef("sex");//创建对上面的引用,显示自动替换为男
xmlTextWriter.WriteEndElement();
xmlTextWriter.WriteElementString("年龄", "25");
xmlTextWriter.WriteCData("年龄太大了");
xmlTextWriter.WriteEndElement();
xmlTextWriter.WriteEndDocument();
xmlTextWriter.Flush();
xmlTextWriter.Close();
}
下面是XmlTextReader对象操作的代码
protected void btnReader_Click(object sender, EventArgs e)
{
string path = Server.MapPath(".");
//创建xml文档
XmlDocument xmlDoc=new XmlDocument();
//创建xml读取器
XmlTextReader reader = new XmlTextReader(path + "//student.xml");
//通过xml读取器加载xml文档
xmlDoc.Load(reader);
string s = "", v = "";
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element:
s=reader.Name;
break;
case XmlNodeType.Text:
{
if (s.Equals("Name"))
{
v = reader.Value;
}
else
v = reader.Value;
}
break;
}
}
if (reader != null)
{
reader.Close();
}
}