xml文件操作初步
来源:互联网 发布:软件培训机构网站 编辑:程序博客网 时间:2024/06/06 02:28
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.IO;
namespace XmlTest
{
class Program
{
static void Main(string[] args)
{
string path = @"f:/mpw/Visual Studio 2005/Projects/File1.xml";
string newpath = @"f:/mpw/Visual Studio 2005/Projects/File2.xml";
string path1 = @"f:/mpw/Visual Studio 2005/Projects/File3.xml";
try
{
XmlWriterSettings mysetting = new XmlWriterSettings();
mysetting.Indent = true;
mysetting.IndentChars = (" ");
XmlWriter mywriter = XmlWriter.Create(path, mysetting);
mywriter.WriteStartElement("people");
mywriter.WriteAttributeString("sex", "male");
mywriter.WriteElementString("name", "zhang");
mywriter.WriteEndElement();
mywriter.Flush();
mywriter.Close();
//往<people>节点中插入一个<book>节点:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(path);
XmlNode root = xmlDoc.SelectSingleNode("people");//查找<people>
XmlElement Root = (XmlElement)root;
Root.SetAttribute("genre","fantasy");
XmlElement Xe1 = xmlDoc.CreateElement("book");
Xe1.SetAttribute("genre", "fantasy");
Xe1.SetAttribute("ISBN", "2-3631-3");
XmlElement Xesub1 = xmlDoc.CreateElement("title");
Xesub1.InnerText = "Oberon's Legacy";//设置文本节点
Xe1.AppendChild(Xesub1);//添加到<book>节点中
XmlElement Xesub2 = xmlDoc.CreateElement("author");
Xesub2.InnerText = "小马";
Xe1.AppendChild(Xesub2);
XmlElement Xesub3 = xmlDoc.CreateElement("price");
Xesub3.InnerText = "5.3";
Xe1.AppendChild(Xesub3);
XmlElement xe1 = xmlDoc.CreateElement("book");//创建一个<book>节点
xe1.SetAttribute("genre", "李赞红");//设置该节点genre属性
xe1.SetAttribute("ISBN", "2-3631-4");//设置该节点ISBN属性
XmlElement xesub1 = xmlDoc.CreateElement("title");
xesub1.InnerText = "CS从入门到精通";//设置文本节点
xe1.AppendChild(xesub1);//添加到<book>节点中
XmlElement xesub2 = xmlDoc.CreateElement("author");
xesub2.InnerText = "候捷";
xe1.AppendChild(xesub2);
XmlElement xesub3 = xmlDoc.CreateElement("price");
xesub3.InnerText = "58.3";
xe1.AppendChild(xesub3);
root.AppendChild(xe1);//添加到<people>节点中
Root.AppendChild(Xe1);
xmlDoc.Save(path);
//修改节点:将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点<author>的文本修改为“亚胜”。
XmlNodeList nodeList = xmlDoc.SelectSingleNode("people").ChildNodes;//获取people节点的所有子节点
foreach (XmlNode xn in nodeList)//遍历所有子节点
{
XmlElement xe = (XmlElement)xn;//将子节点类型转换为XmlElement类型
if (xe.GetAttribute("genre") == "李赞红")//如果genre属性值为“李赞红”
{
xe.SetAttribute("genre", "update李赞红");//则修改该属性为“update李赞红”
XmlNodeList nls = xe.ChildNodes;//继续获取xe子节点的所有子节点
foreach (XmlNode xn1 in nls)//遍历
{
XmlElement xe2 = (XmlElement)xn1;//转换类型
if (xe2.Name == "author")//如果找到
{
xe2.InnerText = "亚胜";//则修改
break;//找到退出来就可以了
}
}
break;
}
}
xmlDoc.Save(path);//保存。
//显示所有数据。
XmlNode Xn = xmlDoc.SelectSingleNode("people");
XmlNodeList xnt = Xn.ChildNodes;
foreach (XmlNode xnf in xnt)
{
XmlElement xe = (XmlElement)xnf;
Console.WriteLine(xe.GetAttribute("genre"));//显示属性值
Console.WriteLine(xe.GetAttribute("ISBN"));
XmlNodeList xnf1 = xe.ChildNodes;
foreach (XmlNode xn2 in xnf1)
{
Console.WriteLine(xn2.InnerText);//显示子节点点文本
}
}
//删除 <book genre="fantasy" ISBN="2-3631-4">节点的genre属性,删除 <book genre="update李赞红" ISBN="2-3631-4">节点。
XmlNodeList xnl = xmlDoc.SelectSingleNode("people").ChildNodes;
foreach (XmlNode xn in xnl)
{
XmlElement xe = (XmlElement)xn;
if (xe.GetAttribute("genre") == "fantasy")
{
xe.RemoveAttribute("genre");//删除genre属性
}
else if (xe.GetAttribute("genre") == "update李赞红")
{
xe.RemoveAll();//删除该节点的全部内容
}
}
xmlDoc.Save(path);
//copy file1 to file2
XmlReader myreader = XmlReader.Create(path);
XmlWriter myWriter = XmlWriter.Create(newpath, mysetting);
myWriter.WriteNode(myreader, true);
myWriter.Flush();
myWriter.Close();
//将f:/mpw/Visual Studio 2005/Projects/zzbds文件夹下的cs文件显示到file3.xml中
XmlWriter xw = XmlWriter.Create(path1);
xw.WriteComment("hehehe");
xw.WriteComment("yeah");
xw.WriteStartElement("root");
xw.WriteComment("路径");
xw.WriteStartElement("folders");
getFile(@"f:/mpw/Visual Studio 2005/Projects", xw);
xw.WriteEndElement();
xw.WriteEndElement();
xw.Close();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
Console.ReadLine();
}
static void getFile(string path, XmlWriter xw)
{
foreach (string subPath in Directory.GetDirectories(path))
{
getFile(subPath, xw);
}
foreach (string fileName in Directory.GetFiles(path, "*.cs"))
{
xw.WriteStartElement("data");
xw.WriteAttributeString("name", Path.GetFileName(fileName));
xw.WriteStartElement("value");
xw.WriteValue(Path.GetDirectoryName(fileName));
xw.WriteEndElement();
xw.WriteEndElement();
}
}
}
}
- xml文件操作初步
- C#操作XML初步
- JavaSE_89_文件操作初步
- plug.xml文件初步分析
- iphone-文件操作初步理解
- iphone-文件操作初步理解
- iphone-文件操作初步理解
- XML文件的简单初步解析
- BeautifulSoup解析xml文件的使用初步
- Mainfest.xml文件的初步解析
- 操作简单XML文件
- JDOM操作XML文件
- JDOM操作XML文件
- 操作Xml文件
- JDOM操作XML文件
- JDOM操作XML文件
- XML文件操作
- delphi操作xml文件
- C调用DLL并口操作
- 2009年的Java技术趋势
- asp.net2.0自定义控件---鼠标移到按钮上更改背景颜色,移出后恢复
- 插件开发的好处
- VxWorks培训心得
- xml文件操作初步
- # 启动外部程序的几种方法
- dm9000初始化过程
- 把Excel文档转换成DataTable
- 使用 Office Web 组件参考文档
- 改变自己
- 深入探索Symbian多视图程序开发
- ert
- Flash 3D引擎全集