- 浏览: 50446 次
- 性别:
- 来自: 西安
最近访客 更多访客>>
最新评论
-
black.angel:
你用的FCK是什么版本的?
EXT中嵌入FCK Editor -
tmartin:
学习了 好东西
EXTJS如何通过JSON与服务器通信
已知有一个XML文件(bookstore.xml)如下:
<?xmlversion="1.0"encoding="gb2312"?>
<bookstore>
<bookgenre="fantasy"ISBN="2-3631-4">
<title>Oberon'sLegacy</title>
<author>Corets,Eva</author>
<price>5.95</price>
</book>
</bookstore>
1、往<bookstore>节点中插入一个<book>节点:
XmlDocumentxmlDoc=newXmlDocument();
xmlDoc.Load("bookstore.xml");
XmlNoderoot=xmlDoc.SelectSingleNode("bookstore");//查找<bookstore>
XmlElementxe1=xmlDoc.CreateElement("book");//创建一个<book>节点
xe1.SetAttribute("genre","李赞红");//设置该节点genre属性
xe1.SetAttribute("ISBN","2-3631-4");//设置该节点ISBN属性
XmlElementxesub1=xmlDoc.CreateElement("title");
xesub1.InnerText="CS从入门到精通";//设置文本节点
xe1.AppendChild(xesub1);//添加到<book>节点中
XmlElementxesub2=xmlDoc.CreateElement("author");
xesub2.InnerText="候捷";
xe1.AppendChild(xesub2);
XmlElementxesub3=xmlDoc.CreateElement("price");
xesub3.InnerText="58.3";
xe1.AppendChild(xesub3);
root.AppendChild(xe1);//添加到<bookstore>节点中
xmlDoc.Save("bookstore.xml");
//================
结果为:
<?xmlversion="1.0"encoding="gb2312"?>
<bookstore>
<bookgenre="fantasy"ISBN="2-3631-4">
<title>Oberon'sLegacy</title>
<author>Corets,Eva</author>
<price>5.95</price>
</book>
<bookgenre="李赞红"ISBN="2-3631-4">
<title>CS从入门到精通</title>
<author>候捷</author>
<price>58.3</price>
</book>
</bookstore>
2、修改节点:将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点<author>的文本修改为“亚胜”。
XmlNodeListnodeList=xmlDoc.SelectSingleNode("bookstore").ChildNodes;//获取bookstore节点的所有子节点
foreach(XmlNodexninnodeList)//遍历所有子节点
{XmlElementxe=(XmlElement)xn;//将子节点类型转换为XmlElement类型
if(xe.GetAttribute("genre")=="李赞红")//如果genre属性值为“李赞红”
{xe.SetAttribute("genre","update李赞红");//则修改该属性为“update李赞红”
XmlNodeListnls=xe.ChildNodes;//继续获取xe子节点的所有子节点
foreach(XmlNodexn1innls)//遍历
{XmlElementxe2=(XmlElement)xn1;//转换类型
if(xe2.Name=="author")//如果找到
{xe2.InnerText="亚胜";//则修改
break;//找到退出来就可以了
}}
break;
}}
xmlDoc.Save("bookstore.xml");//保存。
//=================
最后结果为:
<?xmlversion="1.0"encoding="gb2312"?>
<bookstore>
<bookgenre="fantasy"ISBN="2-3631-4">
<title>Oberon'sLegacy</title>
<author>Corets,Eva</author>
<price>5.95</price>
</book>
<bookgenre="update李赞红"ISBN="2-3631-4">
<title>CS从入门到精通</title>
<author>亚胜</author>
<price>58.3</price>
</book>
</bookstore>
3、删除<bookgenre="fantasy"ISBN="2-3631-4">节点的genre属性,删除<bookgenre="update李赞红"ISBN="2-3631-4">节点。
XmlNodeListxnl=xmlDoc.SelectSingleNode("bookstore").ChildNodes;
foreach(XmlNodexninxnl)
{XmlElementxe=(XmlElement)xn;
if(xe.GetAttribute("genre")=="fantasy")
{xe.RemoveAttribute("genre");//删除genre属性
}elseif(xe.GetAttribute("genre")=="update李赞红")
{xe.RemoveAll();//删除该节点的全部内容
}}
xmlDoc.Save("bookstore.xml");
//====================
最后结果为:
<?xmlversion="1.0"encoding="gb2312"?>
<bookstore>
<bookISBN="2-3631-4">
<title>Oberon'sLegacy</title>
<author>Corets,Eva</author>
<price>5.95</price>
</book>
<book>
</book>
</bookstore>
4、显示所有数据。
XmlNodexn=xmlDoc.SelectSingleNode("bookstore");
XmlNodeListxnl=xn.ChildNodes;
foreach(XmlNodexnfinxnl)
{XmlElementxe=(XmlElement)xnf;
Console.WriteLine(xe.GetAttribute("genre"));//显示属性值
Console.WriteLine(xe.GetAttribute("ISBN"));
XmlNodeListxnf1=xe.ChildNodes;
foreach(XmlNodexn2inxnf1)
{Console.WriteLine(xn2.InnerText);//显示子节点点文本
}}
另有:
usingSystem;
usingSystem.IO;
usingSystem.Web;
usingSystem.Text;
usingSystem.Xml;
usingSystem.Collections;
namespaceShopWeb.Class
{///<summary>
///Log的摘要说明。
///</summary>
publicclassLog
{
privateXmlDocumentxmlLog=newXmlDocument();
privateHttpContextcontext=HttpContext.Current;
privatestringxmlPath="";
///<summary>
///构造函数
///</summary>
///<paramname="XmlPath"></param>
publicLog(stringXmlPath)
{
xmlPath=XmlPath;
xmlLog.Load(context.Server.MapPath(XmlPath));
}
///<summary>
///增加一个节点,该节点由子节点构成
///</summary>
///<paramname="HTChilds"></param>
///<paramname="ParentName"></param>
///<returns></returns>
publicboolAddNodeByChild(HashtableHTChilds,stringParentName)
{
try
{
XmlNodeParent=xmlLog.CreateElement(ParentName);
XmlNodeChild;
IDictionaryEnumeratormyEnumerator=HTChilds.GetEnumerator();
while(myEnumerator.MoveNext())
{
Child=xmlLog.CreateElement(myEnumerator.Key.ToString());
Child.InnerText=myEnumerator.Value.ToString();
Parent.AppendChild(Child);
xmlLog.DocumentElement.AppendChild(Parent);
}
xmlLog.Save(context.Server.MapPath(xmlPath));
returntrue;
}
catch
{
returnfalse;
}
}
///<summary>
///增加一个节点该节点由属性构成
///</summary>
///<paramname="htAttributes"></param>
///<paramname="NodeName"></param>
///<returns></returns>
publicboolAddNodeByAttribute(HashtablehtAttributes,stringNodeName)
{
try
{
XmlNodeAddNode=xmlLog.CreateElement(NodeName);
IDictionaryEnumeratormyEnumerator=htAttributes.GetEnumerator();
XmlAttributeatr;
while(myEnumerator.MoveNext())
{
atr=xmlLog.CreateAttribute(myEnumerator.Key.ToString());
atr.InnerText=myEnumerator.Value.ToString();
AddNode.Attributes.Append(atr);
xmlLog.DocumentElement.AppendChild(AddNode);
}
xmlLog.Save(context.Server.MapPath(xmlPath));
returntrue;
}
catch
{
returnfalse;
}
}
///<summary>
///或得指定查询节点得子节点数目
///</summary>
///<paramname="QueryPath"></param>
///<returns></returns>
publicintChildCount(stringQueryPath)
{
try
{
XmlNodeResultNodes=xmlLog.SelectSingleNode(QueryPath);
returnResultNodes.ChildNodes.Count;
}
catch
{
return-1;
}
}
///<summary>
///删除指定路径的节点
///</summary>
///<paramname="QueryPath"></param>
///<returns></returns>
publicboolDelelteNode(stringQueryPath)
{
try
{
XmlNodeListResultNodes=xmlLog.SelectNodes(QueryPath);
for(inti=0;i<ResultNodes.Count;i++)
{
XmlNodeParentNode=ResultNodes.ParentNode;
ParentNode.RemoveChild(ResultNodes);
}
xmlLog.Save(context.Server.MapPath(xmlPath));
returntrue;
}
catch
{
returnfalse;
}
}
///<summary>
///查询节点
///</summary>
///<paramname="QueryPath"></param>
///<returns></returns>
publicXmlNodeListQueryNode(stringQueryPath)
{
try
{
XmlNodeListResultNodes=xmlLog.SelectNodes(QueryPath);
returnResultNodes;
}
catch
{
returnnull;
}
}
}
}
<?xmlversion="1.0"encoding="gb2312"?>
<bookstore>
<bookgenre="fantasy"ISBN="2-3631-4">
<title>Oberon'sLegacy</title>
<author>Corets,Eva</author>
<price>5.95</price>
</book>
</bookstore>
1、往<bookstore>节点中插入一个<book>节点:
XmlDocumentxmlDoc=newXmlDocument();
xmlDoc.Load("bookstore.xml");
XmlNoderoot=xmlDoc.SelectSingleNode("bookstore");//查找<bookstore>
XmlElementxe1=xmlDoc.CreateElement("book");//创建一个<book>节点
xe1.SetAttribute("genre","李赞红");//设置该节点genre属性
xe1.SetAttribute("ISBN","2-3631-4");//设置该节点ISBN属性
XmlElementxesub1=xmlDoc.CreateElement("title");
xesub1.InnerText="CS从入门到精通";//设置文本节点
xe1.AppendChild(xesub1);//添加到<book>节点中
XmlElementxesub2=xmlDoc.CreateElement("author");
xesub2.InnerText="候捷";
xe1.AppendChild(xesub2);
XmlElementxesub3=xmlDoc.CreateElement("price");
xesub3.InnerText="58.3";
xe1.AppendChild(xesub3);
root.AppendChild(xe1);//添加到<bookstore>节点中
xmlDoc.Save("bookstore.xml");
//================
结果为:
<?xmlversion="1.0"encoding="gb2312"?>
<bookstore>
<bookgenre="fantasy"ISBN="2-3631-4">
<title>Oberon'sLegacy</title>
<author>Corets,Eva</author>
<price>5.95</price>
</book>
<bookgenre="李赞红"ISBN="2-3631-4">
<title>CS从入门到精通</title>
<author>候捷</author>
<price>58.3</price>
</book>
</bookstore>
2、修改节点:将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点<author>的文本修改为“亚胜”。
XmlNodeListnodeList=xmlDoc.SelectSingleNode("bookstore").ChildNodes;//获取bookstore节点的所有子节点
foreach(XmlNodexninnodeList)//遍历所有子节点
{XmlElementxe=(XmlElement)xn;//将子节点类型转换为XmlElement类型
if(xe.GetAttribute("genre")=="李赞红")//如果genre属性值为“李赞红”
{xe.SetAttribute("genre","update李赞红");//则修改该属性为“update李赞红”
XmlNodeListnls=xe.ChildNodes;//继续获取xe子节点的所有子节点
foreach(XmlNodexn1innls)//遍历
{XmlElementxe2=(XmlElement)xn1;//转换类型
if(xe2.Name=="author")//如果找到
{xe2.InnerText="亚胜";//则修改
break;//找到退出来就可以了
}}
break;
}}
xmlDoc.Save("bookstore.xml");//保存。
//=================
最后结果为:
<?xmlversion="1.0"encoding="gb2312"?>
<bookstore>
<bookgenre="fantasy"ISBN="2-3631-4">
<title>Oberon'sLegacy</title>
<author>Corets,Eva</author>
<price>5.95</price>
</book>
<bookgenre="update李赞红"ISBN="2-3631-4">
<title>CS从入门到精通</title>
<author>亚胜</author>
<price>58.3</price>
</book>
</bookstore>
3、删除<bookgenre="fantasy"ISBN="2-3631-4">节点的genre属性,删除<bookgenre="update李赞红"ISBN="2-3631-4">节点。
XmlNodeListxnl=xmlDoc.SelectSingleNode("bookstore").ChildNodes;
foreach(XmlNodexninxnl)
{XmlElementxe=(XmlElement)xn;
if(xe.GetAttribute("genre")=="fantasy")
{xe.RemoveAttribute("genre");//删除genre属性
}elseif(xe.GetAttribute("genre")=="update李赞红")
{xe.RemoveAll();//删除该节点的全部内容
}}
xmlDoc.Save("bookstore.xml");
//====================
最后结果为:
<?xmlversion="1.0"encoding="gb2312"?>
<bookstore>
<bookISBN="2-3631-4">
<title>Oberon'sLegacy</title>
<author>Corets,Eva</author>
<price>5.95</price>
</book>
<book>
</book>
</bookstore>
4、显示所有数据。
XmlNodexn=xmlDoc.SelectSingleNode("bookstore");
XmlNodeListxnl=xn.ChildNodes;
foreach(XmlNodexnfinxnl)
{XmlElementxe=(XmlElement)xnf;
Console.WriteLine(xe.GetAttribute("genre"));//显示属性值
Console.WriteLine(xe.GetAttribute("ISBN"));
XmlNodeListxnf1=xe.ChildNodes;
foreach(XmlNodexn2inxnf1)
{Console.WriteLine(xn2.InnerText);//显示子节点点文本
}}
另有:
usingSystem;
usingSystem.IO;
usingSystem.Web;
usingSystem.Text;
usingSystem.Xml;
usingSystem.Collections;
namespaceShopWeb.Class
{///<summary>
///Log的摘要说明。
///</summary>
publicclassLog
{
privateXmlDocumentxmlLog=newXmlDocument();
privateHttpContextcontext=HttpContext.Current;
privatestringxmlPath="";
///<summary>
///构造函数
///</summary>
///<paramname="XmlPath"></param>
publicLog(stringXmlPath)
{
xmlPath=XmlPath;
xmlLog.Load(context.Server.MapPath(XmlPath));
}
///<summary>
///增加一个节点,该节点由子节点构成
///</summary>
///<paramname="HTChilds"></param>
///<paramname="ParentName"></param>
///<returns></returns>
publicboolAddNodeByChild(HashtableHTChilds,stringParentName)
{
try
{
XmlNodeParent=xmlLog.CreateElement(ParentName);
XmlNodeChild;
IDictionaryEnumeratormyEnumerator=HTChilds.GetEnumerator();
while(myEnumerator.MoveNext())
{
Child=xmlLog.CreateElement(myEnumerator.Key.ToString());
Child.InnerText=myEnumerator.Value.ToString();
Parent.AppendChild(Child);
xmlLog.DocumentElement.AppendChild(Parent);
}
xmlLog.Save(context.Server.MapPath(xmlPath));
returntrue;
}
catch
{
returnfalse;
}
}
///<summary>
///增加一个节点该节点由属性构成
///</summary>
///<paramname="htAttributes"></param>
///<paramname="NodeName"></param>
///<returns></returns>
publicboolAddNodeByAttribute(HashtablehtAttributes,stringNodeName)
{
try
{
XmlNodeAddNode=xmlLog.CreateElement(NodeName);
IDictionaryEnumeratormyEnumerator=htAttributes.GetEnumerator();
XmlAttributeatr;
while(myEnumerator.MoveNext())
{
atr=xmlLog.CreateAttribute(myEnumerator.Key.ToString());
atr.InnerText=myEnumerator.Value.ToString();
AddNode.Attributes.Append(atr);
xmlLog.DocumentElement.AppendChild(AddNode);
}
xmlLog.Save(context.Server.MapPath(xmlPath));
returntrue;
}
catch
{
returnfalse;
}
}
///<summary>
///或得指定查询节点得子节点数目
///</summary>
///<paramname="QueryPath"></param>
///<returns></returns>
publicintChildCount(stringQueryPath)
{
try
{
XmlNodeResultNodes=xmlLog.SelectSingleNode(QueryPath);
returnResultNodes.ChildNodes.Count;
}
catch
{
return-1;
}
}
///<summary>
///删除指定路径的节点
///</summary>
///<paramname="QueryPath"></param>
///<returns></returns>
publicboolDelelteNode(stringQueryPath)
{
try
{
XmlNodeListResultNodes=xmlLog.SelectNodes(QueryPath);
for(inti=0;i<ResultNodes.Count;i++)
{
XmlNodeParentNode=ResultNodes.ParentNode;
ParentNode.RemoveChild(ResultNodes);
}
xmlLog.Save(context.Server.MapPath(xmlPath));
returntrue;
}
catch
{
returnfalse;
}
}
///<summary>
///查询节点
///</summary>
///<paramname="QueryPath"></param>
///<returns></returns>
publicXmlNodeListQueryNode(stringQueryPath)
{
try
{
XmlNodeListResultNodes=xmlLog.SelectNodes(QueryPath);
returnResultNodes;
}
catch
{
returnnull;
}
}
}
}
发表评论
-
关于建立asp.net WEB应用程序时,提示IIS运行的不是asp.net 1.1版的解决办法
2006-07-24 21:49 648关于建立asp.net WEB应用程序时,提示IIS运行的不是 ... -
Asp.Net 学习资源列表
2006-11-16 17:25 594名称:快速入门地址:http://chs.gotdotnet. ... -
给ASP.Net表单增加验证码
2006-11-24 22:09 786给ASP.Net表单增加验证码 一、验证码 对于一个预 ... -
asp.net页面间数据传递
2007-09-23 00:47 5531. Get(即使用QueryString显 ... -
一些常见的ASP.NET验证码
2007-09-23 11:17 1635一些常见的验证码效果图: ... -
asp.net 验证码类
2007-09-23 11:30 975我们在设计用户登录模块时,经常会用到验证码,可以有效地防止黑 ... -
C#中获取程序当前路径的集中方法
2007-10-11 18:55 533stringstr1=Process.GetCurrent ... -
SQL Server 中图片和文件的存取(C#.NET)
2007-10-13 19:30 1175读取文件夹,将文件直接保存到数据库中前台文件 <!--& ... -
.NET中的lock
2007-10-13 19:43 1111lock 关键字可将语句块标记为临界区,方法是获取给定对象 ... -
创建ADOKeycap数据库对象
2007-10-13 19:46 583为什么要创建数据库对象?ADOKeycap 必须创建Datab ... -
ASP.net app_Code dll 类中获得当前路径的方法(非页面中)
2007-10-13 20:44 1703在ASP.NET 页面中获得当前路径的方法很多,比如 MapP ... -
ADOKeycap 比 Socut.data.dll 优越在哪?
2007-10-13 20:45 751最近有很多原Socut.data.dl ... -
使用ADOKeycap统计数据
2007-10-13 20:47 547请注意引用: usingSystem.Data.Commo ... -
认识 yueue.ADOKeycap 开源数据库组件
2007-10-13 20:49 715ADOKeycap 是什么?ADOKeycap ... -
yueue.ADOKeycap 开源数据库组件 1.02 下载+反馈 页面
2007-10-13 20:50 7181.02 版本主要改进如下:1.加入了新方法 AddOutPa ... -
添加yueue.ADOKeycap数据库组件到您的项目
2007-10-13 21:17 625为什么要添加引用?您必须通过在您的工程中引用ADOKeycap ... -
使用AODKeycap读取数据
2007-10-13 21:18 761请注意引用: usingSystem. ... -
使用ADOKeycap插入,更新,删除数据
2007-10-13 21:19 717在执行Delete命令时建议只使用Delete From 而不 ... -
在ADOKeycap中使用DataReader读取数据
2007-10-13 21:21 703注意 您在阅读本教程前最好先阅读 <将ADOKeyc ...
相关推荐
C# WinForm 读写XML文件 C# WinForm 读写XML文件
C# XML文件读写操作源码,以及如何调用,注释详解,有任何问题请留言, 以下截取xml文件和部分调用代码段: * ++++++++++++++++++++++++++++++++++++++ <?xml version="1.0" encoding="utf-8" standalone="no"?&...
C#语言写的,对xml文件进行读写,增删改查操作,每一步都有详细注释代码
c#中对XML文件进行读写操作c#中对XML文件进行读写操作c#中对XML文件进行读写操作
c#读写XML文件 简单易用的代码 希望对你有用!!!
C#操作xml,解决未将对象引用到实例以及put提交表单信息
本文实例讲述了C#通过DataSet读写xml文件的方法。分享给大家供大家参考。具体实现方法如下: DataSet ds = new DataSet(); //读取Xml文件 ds.ReadXml(Server.MapPath(xml/song.xml)); //生成Xml文件 ds.WriteXml...
用C#实现XML文件读写的示例,比较详尽,简单易懂,认真看两三分钟即可掌握如何创建一个较复杂的XML文档
自己编写的读写xml文件,对xml文件的增加、删除、修改、查找
c# xml简单读写
c#读取xml文件,有源代码,实现了两个读写的接口
亲测好用,利用c# 的LinqXML技术 使用LINQ技术对XML文件进行读取
C# 生成xml文件,编码为utf-8方法
通过C#访问XML文件,实现对XML文档的读写操作,适合初学者使用
C# 读写xml文件(读取数据至datagridview)
c#读取xml文件增加结点删除节点并在listview中显示xml文件内容
C#读写xml文件.txtC#读写xml文件.txt
该文件是源于博主“net5i”,登录界面的用户名,密码信息获取并生成相应的XML文件,以及对XML文件的读取并显示出来,工程是C#读写XML配置文件的程序。由于运行时有点小问题,特在VS15中进行Clone了一个完整的工程,...
简单对XML文件的读写操作,代码里有详细的每一步的注释,一看就懂
帮助掌握读写XML文件,帮助操作一些节点的用法