首页 VS 2005 C shap 操作 XML

VS 2005 C shap 操作 XML

举报
开通vip

VS 2005 C shap 操作 XMLVS 2005 C shap 操作 XML VS 2005 C# XML XML大家一定都很熟悉了,根据前一阵做项目总结出的经验,写一篇关于在VS 2005 下操作XML的文章,语言使用C# 准备工作 要添加的命名空间为 System.Xml System.Xml.XPath 第一章 在内存里建立Xml对象 有时候我们可能需要根据数据库里的数据值生成Xml文件,那么,我们就要在内存里先建立Xml对象,之后再将Xml对象以字符串或文件的形式输出。首先来看看怎么用.Net下的 类所提供的方法来生成Xml的...

VS 2005 C shap 操作 XML
VS 2005 C shap 操作 XML VS 2005 C# XML XML大家一定都很熟悉了,根据前一阵做项目 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf 出的经验,写一篇关于在VS 2005 下操作XML的文章,语言使用C# 准备工作 要添加的命名空间为 System.Xml System.Xml.XPath 第一章 在内存里建立Xml对象 有时候我们可能需要根据数据库里的数据值生成Xml文件,那么,我们就要在内存里先建立Xml对象,之后再将Xml对象以字符串或文件的形式输出。首先来看看怎么用.Net下的 类所提供的方法来生成Xml的各部分 假设一软件商买如下游戏:文明3,帝国时代 那么以下代码将生成如下的Xml文档 100 200 XmlDocument xml = new XmlDocument(); //建立XmlDomcumen t对象 XmlDeclaration Declaration = xml.CreateXmlDeclaration("1.0", "utf-8", nul l); //Xml Declaration(Xml声明) XmlNode RootNode = xml.CreateNode(XmlNodeType.Element,"v","Games", "www-microsoft-game"); xml.AppendChild(RootNode); XmlNode node1 = xml.CreateNode(XmlNodeType.Element, "v", "Game", " www-microsoft-game"); RootNode.AppendChild(node1); node1.Attributes.Append(xml.CreateAttribute("name")).InnerText = "文明3"; node1.AppendChild(xml.CreateNode(XmlNodeType.Element,"Price",null)).InnerText = "100"; XmlNode node2 = xml.CreateNode(XmlNodeType.Element, "v", "Game", " www-microsoft-game"); RootNode.AppendChild(node2); node2.Attributes.Append(xml.CreateAttribute("name")).InnerText = "帝国时代"; node2.AppendChild(xml.CreateNode(XmlNodeType.Element, "Price", null)).InnerText = "300"; xml.InsertBefore(Declaration, xml.DocumentElement); 以上虽是一个很简单的Xml文档,但万变不离其中,只要掌握了方法,再复杂的Xml串也可以拼出来。 第二章 读取Xml文档的值 如果我们有现成的Xml文档,那么,我们怎么取到我们感兴趣的值呢? 还是以上边的文档为例,我们看到根节点下边有两个节点,它们的名字都是Game,那么用节点的名称,我们是无法分辨出哪一个节点是“文明3”,哪一个节点是“帝国时代”的!!!那么,当我想知道“文明3”的价格时,就应该使用Xml文档对象下的SelectSingleNode方法。这个方法有两个重载的版本,一个是当Xml文档没有命名空间时使用的,一个参数 SelectSingleNode(string xpath)直接传入xpath即可 另一个是当Xml文档有命名空间时使用的,两个参数 SelelctSingleNode(string xpath,XmlNamespaceManager nsmgr),第一个参数还是xpath,第二个参数是XmlNamespaceManager对象,由于我们的Xml是有命名空间的,所以我们要使用第二种方法!首先我们要建立一个XmlNamespaceManager对象,建立的方法为 XmlNamespaceManager nsmgr = new XmlNamespaceManager(new XmlDocument().NameTable); 建立完对象后,我们就要开始为nsmgr增加我们的命名空间了(注意,这里加的命名空间要与 Xml实际的相对应,但前辍名可不同),增加的方法如下: nsmgr.AddNamespace("v","www-shop-game") 好了,准备工作完成了,现在可以使用SelectSingleNode方法了 string price = xml.SelectSingleNode("v:Games/v:Game[@name='文明3']/Price",nsmgr).InnerText 请注意,如果Xml文档里没有明确指出当前节点的命名空间,那么当前节点的命名空 间继承其父节点的命名空间 假设我们刚才生成的Xml文档已存在D:\Xml目录下了,文件的名字就叫 sellgame.xml,完整的代码如下: XmlDocument xml = new XmlDocument(); xml.Load("D:\\Xml\\sellgame.xml") XmlNamespaceManager nsmgr = new XmlNamespaceManager(new XmlDocument().NameTable); //建立Xml命名空间管理器对象 nsmgr.AddNamespace("v","www-shop-game"); // 增加命名空间 string price = xml.SelectSingleNode("v:Games/v:Game[@name='文 明3']/Price",nsmgr).InnerText;//取得相应的节点值 现在,如果这家软件经销商加增加一种新的产品:文明3的典藏版!那么我们的Xml文 档就要进行相应的扩充了: 100 500 200 这时当我们想要取到全部与“文明3”有关的节点时,该如何进行呢?我们可以使用 SelectNodes方法 该方法大体上与SelectSingleNode方法一样,也是两次重载,但此方法返回一个 XmlNodeList对象,即一个XmlNode数组 当我们想要取到全部与“文明3”有关的节点时,可以这样: XmlNamespaceManager nsmgr = new XmlNamespaceManager(new XmlDocument().NameTable); //建立Xml命名空间管理器对象 nsmgr.AddNamespace("v","www-shop-game"); //增加命名空间 XmlNodeList nodeList = xml.SelectNodes("v:Games/v:Game[@name ='文明3']/Price",nsmgr); //取得相应的节点数组 当我们要取节点的属性值及节点的值时,都可以使用InnerText这个属性 还有一个方法可以设置节点的属生及节点的值,下次再介绍...呵呵
本文档为【VS 2005 C shap 操作 XML】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_314871
暂无简介~
格式:doc
大小:55KB
软件:Word
页数:0
分类:互联网
上传时间:2017-10-27
浏览量:11