using System;//写入
using System.Collections.Generic;
using System.Text;
using System.Xml;
namespace xmlwriter
{
class xmlwriter
{
public static void Main(string[] args)
{
string path = @"c:\newmail.xml";
// string path = @"c:\people.xml";
string oldpath = @"c:\mail.xml";
/* try//写入元素
{
XmlWriterSettings mySettings = new XmlWriterSettings();
mySettings.Indent = true;//是否进行缩进
mySettings.IndentChars = (" ");
XmlWriter myWriter = XmlWriter.Create(path, mySettings);
myWriter.WriteStartElement("people");
myWriter.WriteElementString("name", "zhang");
myWriter.WriteEndElement();
myWriter.Flush();//当在派生类中被重写时候将缓冲区的所有内容刷新到基础流
}*/
/* try//写入属性
{
XmlWriterSettings mySettings = new XmlWriterSettings();
mySettings.Indent = true;
mySettings.IndentChars = (" ");
XmlWriter myWriter = XmlWriter.Create(path, mySettings);//创建XMLWRITER实例
//输入XML数据
myWriter.WriteStartElement("people");
myWriter.WriteAttributeString("sex", "male");
myWriter.WriteElementString("name", "zhang");
myWriter.WriteEndElement();
myWriter.Flush();
}*/
/* try//第二种写入属性的方法
{
XmlWriterSettings mySettings = new XmlWriterSettings();
mySettings.Indent = true;
mySettings.IndentChars = (" ");
XmlWriter myWriter = XmlWriter.Create(path,mySettings);
myWriter.WriteStartElement("people");
myWriter.WriteStartAttribute("nation");
myWriter.WriteValue("chinese");
myWriter.WriteEndAttribute();
myWriter.WriteElementString("name", "zhang");
myWriter.WriteEndElement();
myWriter.Flush();
}*/
/* try//第三种写入XML的方法
{
XmlWriterSettings mySettings = new XmlWriterSettings();
mySettings.Indent = true;
mySettings.IndentChars = (" ");
XmlWriter myWriter = XmlWriter.Create(path,mySettings);
myWriter.WriteStartElement("people");
myWriter.WriteElementString("name","zhang");
myWriter.WriteElementString("nation", "china");
myWriter.WriteEndElement();
myWriter.Flush();
}*/
try//第三种写入XML的方法
{
XmlWriterSettings mySettings = new XmlWriterSettings();
mySettings.Indent = true;
mySettings.IndentChars = (" ");
XmlReader myReader = XmlReader.Create(oldpath);
myReader.ReadToNextSibling("mail");
XmlWriter myWriter = XmlWriter.Create(path);
myWriter.WriteNode(myReader, true);
myWriter.Flush();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
Console.ReadLine();
}
}
}
using System;//读取
using System.Collections.Generic;
using System.Text;
using System.Xml;
namespace xml
{
class Program
{
static void Main(string[] args)
{
string path = @"c:\mail.xml";
string date = string.Empty;
// XmlReader reader;
/* try
{
XmlReader myReader = XmlReader.Create(path);
myReader.ReadStartElement("mail");
myReader.ReadStartElement("date");
myReader.ReadStartElement("month");
Console.WriteLine("month 中包含的节点内容是: ");
Console.WriteLine(myReader.ReadString());
myReader.ReadEndElement();
myReader.ReadStartElement("day");
Console.WriteLine("day 中包含的节点内容是: ");
Console.WriteLine(myReader.ReadString());
myReader.ReadEndElement();
myReader.ReadStartElement("year");
Console.WriteLine("year 中包含的节点内容是: ");
Console.WriteLine(myReader.ReadString());
myReader.ReadEndElement();
myReader.ReadEndElement();
myReader.ReadStartElement("to");
Console.WriteLine("to 中包含的节点内容是: ");
Console.WriteLine(myReader.ReadString());
myReader.ReadEndElement();
myReader.ReadStartElement("from");
Console.WriteLine("from 中包含的节点内容是: ");
Console.WriteLine(myReader.ReadString());
myReader.ReadEndElement();
myReader.ReadStartElement("title");
Console.WriteLine("title 中包含的节点内容是: ");
Console.WriteLine(myReader.ReadString());
myReader.ReadEndElement();
myReader.ReadStartElement("body");
Console.WriteLine("body 中包含的节点内容是: ");
Console.WriteLine(myReader.ReadString());
myReader.ReadEndElement();
myReader.ReadEndElement();
// while (myReader.Read());
}*/
/* try
{
XmlReader myReader = XmlReader.Create(path);
while (myReader.Read())
{
if (myReader.IsStartElement())
{
if(myReader.IsEmptyElement)
Console.WriteLine("<{0}/>",myReader.Name);
else
{
Console.Write("<{0}>",myReader.Name);
myReader.Read();
if(myReader.IsEmptyElement)
Console.WriteLine("\r\n<{0}>", myReader.Name);
Console.Write(myReader.ReadString());
Console.WriteLine("</{0}>",myReader.Name);
}
}
}
Console.WriteLine("</mail>");
}*/
try//读取制定的属性
{
XmlReader myReader = XmlReader.Create(path);
// myReader.ReadToNextSibling("mail");
myReader.ReadToDescendant("mail");
date = myReader.GetAttribute("date");
Console.WriteLine("信件的日期为: ");
Console.WriteLine(date);
}
/* try
{
XmlReader myReader = XmlReader.Create(path);
while(myReader.Read())
{
if(myReader.HasAttributes)
{
Console.WriteLine("<" + myReader.Name +">的属性: ");
while (myReader.HasAttributes)
{
Console.WriteLine("{0}={1}", myReader.Name, myReader.Value);
}
myReader.Read();//
}
}
}*/
catch (Exception e)
{
Console.WriteLine(e.Message);
}
Console.ReadLine();
}
}
}
class Test
{
public static void Main(string[] args)
{
string path = "d:\\books.xml";
XmlReader reader = null;
try
{
// 创建XmlReaderSettings对象
XmlReaderSettings settings = new XmlReaderSettings();
// 设置XmlReaderSettings对象的属性
settings.ProhibitDtd = false;
// 使用XmlReaderSettings对象来创建XmlReader对象
reader = XmlReader.Create(path, settings);
ReadXml(reader);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
if (reader != null)
reader.Close();
}
}
private static void ReadXml(XmlReader reader)
{
try
{
// 解析文件,并显示每一个节点
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element:
if (reader.IsEmptyElement) // 空元素?
{
Console.WriteLine("<{0}/>", reader.Name);
}
else
{
Console.Write("<{0}", reader.Name);
if (reader.HasAttributes) // 属性?
{
while (reader.MoveToNextAttribute())
{
Console.Write(" {0}=\"{1}\"", reader.Name, reader.Value);
}
}
Console.WriteLine(">", reader.Name);
}
break;
case XmlNodeType.Text:
Console.WriteLine(reader.Value);
break;
case XmlNodeType.CDATA:
Console.WriteLine("<![CDATA[{0}]]>", reader.Value);
break;
case XmlNodeType.ProcessingInstruction:
Console.WriteLine("<?{0} {1}?>", reader.Name, reader.Value);
break;
case XmlNodeType.Comment:
Console.WriteLine("<!--{0}-->", reader.Value);
break;
case XmlNodeType.XmlDeclaration:
Console.WriteLine("<?xml version='1.0'?>");
break;
case XmlNodeType.Document:
break;
case XmlNodeType.DocumentType:
Console.WriteLine("<!DOCTYPE {0} [{1}]>", reader.Name, reader.Value);
break;
case XmlNodeType.EntityReference:
Console.WriteLine(reader.Name);
break;
case XmlNodeType.EndElement:
Console.WriteLine("</{0}>", reader.Name);
break;
}
}
}
catch (XmlException ex)
{
Console.WriteLine(ex.Message);
}
}
}