- 浏览: 247790 次
- 性别:
- 来自: 济南
文章分类
- 全部博客 (205)
- jQuery (27)
- Flash AS3.0 (0)
- Html5+CSS3 (12)
- C# .Net (19)
- Xml XPath XSLT (5)
- Sql (3)
- JavaScript (20)
- struts2 (23)
- hibernate (24)
- spring (11)
- j2ee (16)
- jsp/java (11)
- 设计模式 (5)
- json (3)
- Java.IO (7)
- Java.Util (7)
- android (8)
- WebService (10)
- MyEclipse SVN (3)
- servlet (1)
- Exception (3)
- 自我学习 (2)
- UML (2)
- java泛型 (1)
- Lucene (7)
- HtmlParser (2)
- 概念理解 (3)
- 正则表达式 (1)
- EMail (1)
最新评论
-
hanmiao:
没用,干巴巴的壹堆代码,没明白到底区别在哪里。
List Set Map 区别! -
e421083458:
偶来过了!
C#单向链表的实现
XmlDocument xmldoc;
XmlNode xmlnode;
XmlElement xmlelem;
protected void Page_Load(object sender, EventArgs e)
{
//创建文件和添加节点
xmldoc = new XmlDocument();
//加入XML的声明段落,<?xml version="1.0" encoding="gb2312"?>
XmlDeclaration xmldecl;
xmldecl = xmldoc.CreateXmlDeclaration("1.0", "gb2312", null);
xmldoc.AppendChild(xmldecl);
//加入一个根元素
xmlelem = xmldoc.CreateElement("", "Employees", "");
xmldoc.AppendChild(xmlelem);
//加入另外一个元素
for (int i = 1; i < 3; i++)
{
XmlNode root = xmldoc.SelectSingleNode("Employees");//查找<Employees>
XmlElement xe1 = xmldoc.CreateElement("Node");//创建一个<Node>节点
xe1.SetAttribute("genre", "李赞红");//设置该节点genre属性
xe1.SetAttribute("ISBN", "2-3631-4");//设置该节点ISBN属性
XmlElement xesub1 = xmldoc.CreateElement("title");
xesub1.InnerText = "CS从入门到精通";//设置文本节点
xe1.AppendChild(xesub1);//添加到<Node>节点中
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);//添加到<Employees>节点中
}
//保存创建好的XML文档
xmldoc.Save(Server.MapPath("data.xml"));
//添加节点
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("data.xml"));
XmlNode roots = xmlDoc.SelectSingleNode("Employees");//查找<Employees>
XmlElement xe2 = xmlDoc.CreateElement("Node");//创建一个<Node>节点
xe2.SetAttribute("genre", "张三");//设置该节点genre属性
xe2.SetAttribute("ISBN", "1-1111-1");//设置该节点ISBN属性
XmlElement xesub6 = xmlDoc.CreateElement("title");
xesub6.InnerText = "C#入门帮助";//设置文本节点
xe2.AppendChild(xesub6);//添加到<Node>节点中
XmlElement xesub4 = xmlDoc.CreateElement("author");
xesub4.InnerText = "高手";
xe2.AppendChild(xesub4);
XmlElement xesub5 = xmlDoc.CreateElement("price");
xesub5.InnerText = "158.3";
xe2.AppendChild(xesub5);
roots.AppendChild(xe2);//添加到<Employees>节点中
xmlDoc.Save(Server.MapPath("data.xml"));
//修改节点属性和内容
xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("data.xml"));
XmlNodeList nodeList = xmlDoc.SelectSingleNode("Employees").ChildNodes;//获取Employees节点的所有子节点
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)//遍历
{
xe2 = (XmlElement)xn1;//转换类型
if (xe2.Name == "author")//如果找到
{
xe2.InnerText = "亚胜";//则修改
}
}
}
}
xmlDoc.Save(Server.MapPath("data.xml"));//保存。
//添加节点
xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("data.xml"));
nodeList = xmlDoc.SelectSingleNode("Employees").ChildNodes;//获取Employees节点的所有子节点
foreach (XmlNode xn in nodeList)
{
XmlElement xe = (XmlElement)xn;
xe.SetAttribute("test", "111111");
XmlElement xesub = xmlDoc.CreateElement("flag");
xesub.InnerText = "1";
xe.AppendChild(xesub);
}
xmlDoc.Save(Server.MapPath("data.xml"));
//删除属性和子节点
xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("data.xml"));
XmlNodeList xnl = xmlDoc.SelectSingleNode("Employees").ChildNodes;
foreach (XmlNode xn in xnl)
{
XmlElement xe = (XmlElement)xn;
xe.RemoveAttribute("genre");//删除genre属性
XmlNodeList nls = xe.ChildNodes;//继续获取xe子节点的所有子节点
foreach (XmlNode xn1 in nls)//遍历
{
xe2 = (XmlElement)xn1;//转换类型
if (xe2.Name == "flag")//如果找到
{
xe.RemoveChild(xe2);//则删除
}
}
}
xmlDoc.Save(Server.MapPath("data.xml"));
//删除节点
xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("data.xml"));
XmlNode rootq = xmlDoc.SelectSingleNode("Employees");
xnl = xmlDoc.SelectSingleNode("Employees").ChildNodes;
for (int i = 0; i < xnl.Count; i++)
{
XmlElement xe = (XmlElement)xnl.Item(i);
if (xe.GetAttribute("ISBN") == "1-1111-10")
{
rootq.RemoveChild(xe);
if (i < xnl.Count) i = i - 1;
}
}
xmlDoc.Save(Server.MapPath("data.xml"));
//读取节点
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("data.xml"));
//根据属性查找节点
//XmlNode xns = doc.SelectSingleNode("/Employees/Node[@ISBN='2-3631-4']");
//根据子节点内容
XmlNode xns = doc.SelectSingleNode("Employees/Node/author[text()='候捷']");
//根据多层节点查找
//objNode = objDoc.SelectSingleNode("Company/Department[Employees/Employee/@id='22345']/Department_Name")
xnl = xns.ChildNodes;
foreach (XmlNode xnf in xnl)
{
// XmlElement xe = (XmlElement)xnf;
//Response.Write(xe.GetAttribute("ISBN"));//显示属性值
// XmlNodeList xnf1 = xe.ChildNodes;
// foreach (XmlNode xn2 in xnf1)
// {
Response.Write(xnf.Name + ":" + xnf.InnerText);//显示子节点点文本
//}
Response.Write("<br>");
}
//XmlNode objNode = doc.SelectSingleNode("Employees/Node[ISBN='2-3631-4']");
}
XmlNode xmlnode;
XmlElement xmlelem;
protected void Page_Load(object sender, EventArgs e)
{
//创建文件和添加节点
xmldoc = new XmlDocument();
//加入XML的声明段落,<?xml version="1.0" encoding="gb2312"?>
XmlDeclaration xmldecl;
xmldecl = xmldoc.CreateXmlDeclaration("1.0", "gb2312", null);
xmldoc.AppendChild(xmldecl);
//加入一个根元素
xmlelem = xmldoc.CreateElement("", "Employees", "");
xmldoc.AppendChild(xmlelem);
//加入另外一个元素
for (int i = 1; i < 3; i++)
{
XmlNode root = xmldoc.SelectSingleNode("Employees");//查找<Employees>
XmlElement xe1 = xmldoc.CreateElement("Node");//创建一个<Node>节点
xe1.SetAttribute("genre", "李赞红");//设置该节点genre属性
xe1.SetAttribute("ISBN", "2-3631-4");//设置该节点ISBN属性
XmlElement xesub1 = xmldoc.CreateElement("title");
xesub1.InnerText = "CS从入门到精通";//设置文本节点
xe1.AppendChild(xesub1);//添加到<Node>节点中
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);//添加到<Employees>节点中
}
//保存创建好的XML文档
xmldoc.Save(Server.MapPath("data.xml"));
//添加节点
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("data.xml"));
XmlNode roots = xmlDoc.SelectSingleNode("Employees");//查找<Employees>
XmlElement xe2 = xmlDoc.CreateElement("Node");//创建一个<Node>节点
xe2.SetAttribute("genre", "张三");//设置该节点genre属性
xe2.SetAttribute("ISBN", "1-1111-1");//设置该节点ISBN属性
XmlElement xesub6 = xmlDoc.CreateElement("title");
xesub6.InnerText = "C#入门帮助";//设置文本节点
xe2.AppendChild(xesub6);//添加到<Node>节点中
XmlElement xesub4 = xmlDoc.CreateElement("author");
xesub4.InnerText = "高手";
xe2.AppendChild(xesub4);
XmlElement xesub5 = xmlDoc.CreateElement("price");
xesub5.InnerText = "158.3";
xe2.AppendChild(xesub5);
roots.AppendChild(xe2);//添加到<Employees>节点中
xmlDoc.Save(Server.MapPath("data.xml"));
//修改节点属性和内容
xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("data.xml"));
XmlNodeList nodeList = xmlDoc.SelectSingleNode("Employees").ChildNodes;//获取Employees节点的所有子节点
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)//遍历
{
xe2 = (XmlElement)xn1;//转换类型
if (xe2.Name == "author")//如果找到
{
xe2.InnerText = "亚胜";//则修改
}
}
}
}
xmlDoc.Save(Server.MapPath("data.xml"));//保存。
//添加节点
xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("data.xml"));
nodeList = xmlDoc.SelectSingleNode("Employees").ChildNodes;//获取Employees节点的所有子节点
foreach (XmlNode xn in nodeList)
{
XmlElement xe = (XmlElement)xn;
xe.SetAttribute("test", "111111");
XmlElement xesub = xmlDoc.CreateElement("flag");
xesub.InnerText = "1";
xe.AppendChild(xesub);
}
xmlDoc.Save(Server.MapPath("data.xml"));
//删除属性和子节点
xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("data.xml"));
XmlNodeList xnl = xmlDoc.SelectSingleNode("Employees").ChildNodes;
foreach (XmlNode xn in xnl)
{
XmlElement xe = (XmlElement)xn;
xe.RemoveAttribute("genre");//删除genre属性
XmlNodeList nls = xe.ChildNodes;//继续获取xe子节点的所有子节点
foreach (XmlNode xn1 in nls)//遍历
{
xe2 = (XmlElement)xn1;//转换类型
if (xe2.Name == "flag")//如果找到
{
xe.RemoveChild(xe2);//则删除
}
}
}
xmlDoc.Save(Server.MapPath("data.xml"));
//删除节点
xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("data.xml"));
XmlNode rootq = xmlDoc.SelectSingleNode("Employees");
xnl = xmlDoc.SelectSingleNode("Employees").ChildNodes;
for (int i = 0; i < xnl.Count; i++)
{
XmlElement xe = (XmlElement)xnl.Item(i);
if (xe.GetAttribute("ISBN") == "1-1111-10")
{
rootq.RemoveChild(xe);
if (i < xnl.Count) i = i - 1;
}
}
xmlDoc.Save(Server.MapPath("data.xml"));
//读取节点
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("data.xml"));
//根据属性查找节点
//XmlNode xns = doc.SelectSingleNode("/Employees/Node[@ISBN='2-3631-4']");
//根据子节点内容
XmlNode xns = doc.SelectSingleNode("Employees/Node/author[text()='候捷']");
//根据多层节点查找
//objNode = objDoc.SelectSingleNode("Company/Department[Employees/Employee/@id='22345']/Department_Name")
xnl = xns.ChildNodes;
foreach (XmlNode xnf in xnl)
{
// XmlElement xe = (XmlElement)xnf;
//Response.Write(xe.GetAttribute("ISBN"));//显示属性值
// XmlNodeList xnf1 = xe.ChildNodes;
// foreach (XmlNode xn2 in xnf1)
// {
Response.Write(xnf.Name + ":" + xnf.InnerText);//显示子节点点文本
//}
Response.Write("<br>");
}
//XmlNode objNode = doc.SelectSingleNode("Employees/Node[ISBN='2-3631-4']");
}
发表评论
文章已被作者锁定,不允许评论。
-
采用PULL解析XML
2011-12-21 22:05 914/* * 读取 */ public void ... -
采用DOM解析XML
2011-12-21 20:55 798public class DomXml { /** ... -
采集SAX解析XML
2011-12-21 20:20 770/*** * 采集SAX解析XML * 优点:解析快, ... -
经典.net面试题目
2011-08-09 14:14 7341. 简述 private、 protected、 publi ... -
.net面试问答(大汇总)
2011-08-09 13:57 1058用.net做B/S结构的系统, ... -
C#实现双向链表
2011-07-20 16:46 955/// <summary> /// 双向链 ... -
C#单向链表的实现
2011-07-20 16:39 1405public class UserTbl { priv ... -
js在线编辑器其中一个上传图片功能
2011-07-13 22:04 1305img.html <script language=&q ... -
Asp.net 中如何调用母版中的变量和变量
2011-07-07 11:27 2641((test)this.master).str: test:当 ... -
C# 循环DataSet表里的数据
2011-07-05 22:22 1932cs:DataSet ds = DbSqlClient.Que ... -
C#jQuery解决传值时获取的代码问题
2011-07-05 11:34 1085传值:escape($("input[name=co ... -
C# 正则表达式语法定义
2011-07-04 14:02 870Regex reg = new Regex("-&q ... -
C#修饰符
2011-06-17 13:29 7981, 访问修饰符 指定声 ... -
字符串处理Utils
2011-06-17 10:16 908using System; using System.Coll ... -
asp.net性能优化的几个方面
2011-06-17 09:48 889c#(或vb.net)程序改进 ... -
StringJoiner 拯救那些性能低下的字符串拼装代码
2011-06-17 09:44 1023作者:Bruce(编程的艺 ... -
HttpModule
2011-06-17 09:04 880HttpModule & HttpHandle TE& ... -
C# CS 语法
2011-06-16 14:13 863C#Md5加密16位的: System.W ... -
ASP.NET页面与IIS底层交互和工作原理详解 (二)
2011-06-15 16:12 865第三回: 引言 Http 请求 ... -
ASP.NET页面与IIS底层交互和工作原理详解(一)
2011-06-15 16:10 1060第一回: 引言 我查阅 ...
相关推荐
在这个过程中,理解XPath(XML路径语言)也可以帮助更高效地定位XML节点。XPath是用于在XML文档中查找信息的语言,尽管在C#中不是必需的,但它提供了一种强大而灵活的方式来定位节点。 总之,C#通过`XDocument`类...
这个小测试程序的核心功能就是基于这些基本操作实现的,它不需要依赖任何第三方库,提供了便捷的方式处理多层XML节点,特别适合用于程序配置文件的读写。在实际项目中,为了代码的可维护性和健壮性,建议封装成类或...
本教程将深入探讨如何在C#中操作XML,包括读取和生成XML文档,并利用Web Service接口进行数据传输。 1. **C#操作XML:读取** 在C#中,我们可以使用`System.Xml`命名空间中的类来处理XML文档。其中,`XmlDocument`...
本篇文章将深入探讨如何使用C#来处理OPML文档,实现动态生成树型菜单以及对相应节点的操作维护。 首先,要处理OPML文档,我们需要了解其基本结构。OPML文档由一系列的、和元素组成。其中包含文档元信息,则包含了...
本文将深入探讨如何在C#中通过循环生成XML文档,这一过程对于批量处理数据或动态生成配置文件等场景尤为关键。 ### 核心知识点:C#中循环生成XML文档 #### 1. 初始化XML文档 在C#中,生成XML文档的第一步是创建一...
这样的工具通常会根据XML节点的层次结构生成嵌套的类,并考虑命名空间、属性注解等细节。 4. **使用生成的类**:一旦生成了C#类,我们就可以在代码中实例化这些类,然后使用XML序列化器将XML数据填充到对象中,或者...
总的来说,C#的`XmlDocument`类提供了一种强大且灵活的方式来处理XML数据,允许开发者进行深度的数据操作,包括读取、修改、添加和删除XML节点。在实际的开发工作中,理解并熟练掌握这些操作对于处理XML数据至关重要...
总之,XML的添加操作和节点描述是XML处理的基础,而Repeater展示则是数据绑定的关键技术,结合XmlReader这样的高效读取工具,可以实现灵活、高效的XML数据处理和展示。在实际开发中,熟练运用这些知识可以提高代码的...
在C#中,XML文件的操作主要依赖于.NET框架提供的System.Xml命名空间,它包含了一系列类库用于解析、创建和修改XML文档。 XML文件结构清晰,数据以节点的形式组织,包括元素(Element)、属性(Attribute)、文本...
4. **遍历XML节点**:遍历XML文件通常涉及到foreach循环,通过XmlNode的ChildNodes属性访问子节点,或者通过NextSibling和PreviousSibling属性访问相邻节点。 描述中的“速度比用delphi读取并遍历XML快的不只几倍!...
//生成Xml文件 ds.WriteXml(Server.MapPath(xml/song_bak.xml)); 希望本文所述对大家的C#程序设计有所帮助。 您可能感兴趣的文章:C# 创建,读取,写入XML文件C#操作读取、写入XML文档的实用方法C#实现xml文件的读取...
用户可以通过添加、删除、移动节点来操作XML结构。此外,属性编辑器允许用户编辑元素的属性值。 3. **验证与错误处理**:为了确保生成的XML文档符合规范,系统集成XML Schema Definition (XSD) 支持,可以加载XSD...
总之,C#中修改XML文档涉及的主要步骤包括加载XML、找到要修改的节点、进行修改以及保存修改。`XmlDocument`类提供了这些功能,而XPath则帮助我们高效地定位到目标节点。在实际编程中,根据项目需求和团队规范选择...
首先,生成XML文件的基本步骤涉及创建一个`XmlDocument`对象,然后通过添加节点来构建XML结构。以下是一个简单的C#代码示例,展示了如何生成XML文件: ```csharp using System; using System.Xml; public class ...
本教程将深入探讨如何使用C#来自动创建和编辑XML文件,包括XML文件的生成以及对XML节点的操作。 首先,要创建一个XML文件,可以使用System.Xml命名空间中的XmlDocument类。以下是一个简单的示例,展示如何创建一个...
本篇文章将深入探讨如何在C#中动态生成XML文件,特别是通过DataTable对象来实现这一过程。 首先,我们来看一下基本的XML生成方法,这通常涉及到使用System.Xml命名空间中的类。其中,XmlDocument类是最基础的XML...
文件名可以作为XML节点的值,而文件路径可能作为属性存储。例如: ```csharp XDocument doc = new XDocument( new XElement("Files", from file in Directory.GetFiles("path_to_directory") select new ...
在处理SOAP XML报文时,我们可能遇到一些规范性问题,例如节点首字母大小写的转换,以及节点命名空间前缀的添加与剔除。本文将深入探讨这些问题,并提供相应的解决方案。 首先,关于SOAP XML报文中的节点首字母大小...
4. **序列化对象到XML**:如果需要从C#对象生成XML,可以使用`System.Xml.Serialization.XmlSerializer`类。`XmlHelper`可能包含了这样的功能,允许用户传递对象,自动将其属性转换为XML节点。 5. **保存XML到文件*...
本教程将深入讲解如何使用C#进行XML文件的读写操作,包括增加、删除、修改和查找元素。 首先,我们要了解C#中的System.Xml命名空间,它提供了处理XML文档的各种类。主要涉及以下类: 1. **XmlDocument**:这是处理...