xml文件读取和写入的实现方式小结
xml文件的读取和写入主要又两种,一种是XMLDocument,另一种是XMLtextwriter/xmltextreader。
1、XMLtextwriter/xmltextreader
读取程序:
string path="myxml.xml";
string str = "";
XmlTextReader xtr = new XmlTextReader(path);
///read()这个方法的返回值总是为真,直到到达文件的底部时,返回值才变为假。换句话说, 循环在文件的开始时启动并且读入所有的节点, 一次读入一个节点, 直到到达文件的结尾:
try
{
while(xtr.Read())
///此时,xtr里面有着当前节点的信息也就是从刚刚获得数据的那个节点的信息。也就是xtr.value就是当前元素的值,可以用if(str.name==“”)来获得感兴趣的元素的值
{
switch (xtr.NodeType)
{
case XmlNodeType.Element:
str += "Element:" + xtr.Name;
break;
case XmlNodeType.Text:
str += "Text:" + xtr.Value;
break;
case XmlNodeType.EndElement:
str += "EndElement:" + xtr.Name;
break;
default:
break;
}
}
tb.AppendText(str);
xtr.Close();
}
catch
{
}
当使用NodeType属性时,理解节点怎么联系到XML单元是非常重要的。例如, 看下列 XML元素:
<city>nanjing</city>
XMLtextReader 把这个元素看作 3 个节点,顺序如下:
1.<city>标签被读为类型 XMLNodeType.Element 节点,元素的名字“city”可从 XMLTextReader 的Name属性中获得。
2.文本数据“nanjing”被读为类型为XMLNodeType.Text的节点。数据“nanjing ” 可从XMLTextReader 的Value属性中取得。
3.</city>标签被读为类型为XMLNodeType.EndElement 节点。同样,元素的名称“city”可从XMLTextReader的Name属性中获得。
如果XMLTextReader遇到一个错误, 例如出现违反XML句法的情况,它抛出一个System.XML.XMLException类型的异常。使用这个类的代码应该总是被保护 ( 在Try……Catch块中)。
写入程序:
XmlTextWriter xtw = new XmlTextWriter(path,ASCIIEncoding.ASCII);
xtw.Formatting = Formatting.Indented;
xtw.WriteStartDocument();
xtw.WriteComment("it's happy's first xml file!");
xtw.WriteStartElement("grandfather");
xtw.WriteStartElement("father");
xtw.WriteName("happy");
xtw.WriteValue("happy123");
xtw.WriteElementString("me", "nuaa");
xtw.WriteEndElement();
xtw.WriteEndElement();
xtw.WriteEndDocument();
xtw.Flush();
xtw.Close();
MessageBox.Show("XML文件保存成功!");
2、XMLDOCUMENT
写入程序:
try
{
string path = "happy.xml";
XmlDocument xd = new XmlDocument();
xd.CreateXmlDeclaration("1.0", "utf-8", "yes");
XmlNode root = xd.CreateElement("NUAA");
XmlNode xn = xd.CreateElement("CAE");
XmlAttribute xa = xd.CreateAttribute("name");
xa.Value = "happyhuang";
root.
补充:Web开发 , 其他 ,