[转贴]C#的XML数使用示例(很久以前转的,忘记出处了,做个备份

原创 2007年10月04日 17:09:00
1、往<bookstore>节点中插入一个<book>节点:
   XmlDocument xmlDoc=new XmlDocument();
   xmlDoc.Load("bookstore.xml");
   XmlNode root=xmlDoc.SelectSingleNode("bookstore");//查找<bookstore>
   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);//添加到<bookstore>节点中
   xmlDoc.Save("bookstore.xml");
//===============================================
结果为:
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
  <book genre="fantasy" ISBN="2-3631-4">
    <title>Oberon’s Legacy</title>
    <author>Corets, Eva</author>
    <price>5.95</price>
  </book>
  <book genre="李赞红" ISBN="2-3631-4">
    <title>CS从入门到精通</title>
    <author>候捷</author>
    <price>58.3</price>
  </book>
</bookstore>
2、修改节点:将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点<author>的文本修改为“亚胜”。
    XmlNodeList nodeList=xmlDoc.SelectSingleNode("bookstore").ChildNodes;//获取bookstore节点的所有子节点
   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("bookstore.xml");//保存。
//==================================================
最后结果为:
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
  <book genre="fantasy" ISBN="2-3631-4">
    <title>Oberon’s Legacy</title>
    <author>Corets, Eva</author>
    <price>5.95</price>
  </book>
  <book genre="update李赞红" ISBN="2-3631-4">
    <title>CS从入门到精通</title>
    <author>亚胜</author>
    <price>58.3</price>
  </book>
</bookstore>
3、删除 <book genre="fantasy" ISBN="2-3631-4">节点的genre属性,删除 <book genre="update李赞红" ISBN="2-3631-4">节点。
XmlNodeList xnl=xmlDoc.SelectSingleNode("bookstore").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("bookstore.xml");
//===========================================
最后结果为:
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
  <book ISBN="2-3631-4">
    <title>Oberon’s Legacy</title>
    <author>Corets, Eva</author>
    <price>5.95</price>
  </book>
  <book>
  </book>
</bookstore>
4、显示所有数据。
   XmlNode xn=xmlDoc.SelectSingleNode("bookstore");
   XmlNodeList xnl=xn.ChildNodes;
  
   foreach(XmlNode xnf in xnl)
   {
    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);//显示子节点点文本
    }
   }  

C# XML与Json之间相互转换实例详解

对于这转换其实很简单,其中最重要的就是先要引用类库。可以到官网进行下载引用http://json.codeplex.com。 XML转换为Json字符串   复制代码 代码如下: str...
  • LanSeTianKong12
  • LanSeTianKong12
  • 2015年08月24日 14:34
  • 2736

XML——c# 实体转xml最佳实践(自定义转化方式)

定义一个接口,包含两个方法:实体转xml 和 xml转实体。包含一个属性根节点标签名称 /// /// 定义元属性实体类与Xml之间的转换接口 /// /// 元属性...
  • Shiyaru1314
  • Shiyaru1314
  • 2017年03月13日 20:21
  • 1582

c# XML和实体类之间相互转换

public class XmlUtil { #region 反序列化 /// /// 反序列化 ...
  • yuchen_0515
  • yuchen_0515
  • 2015年05月08日 23:39
  • 5193

XML与DataSet的相互转换

一、XML 与 DataSet 的关系如下图所示:     二、DataSet 对象的常用方法如下:   A. 使用ReadXml( ) 方法: 从文件或流...
  • nieweiking
  • nieweiking
  • 2015年12月31日 16:28
  • 5002

c# XML和实体类之间相互转换(序列化和反序列化)

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I...
  • smartsmile2012
  • smartsmile2012
  • 2015年02月06日 16:02
  • 1538

C#将XML转换成JSON转换XML

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.X...
  • cwj649956781
  • cwj649956781
  • 2014年04月01日 16:33
  • 19159

Model与XML互相转换

interface ISerialize { /// /// xml 转换为 model /// /// ...
  • yuchen_0515
  • yuchen_0515
  • 2015年05月08日 23:34
  • 2643

C#编程,XML转换工具类

自己写的一个工具类,用于XML的转换。 包括:Object对象转XML文件,           Object对象转XML字符串,           XML格式的文件转Object对象,      ...
  • xiaoYong_520
  • xiaoYong_520
  • 2017年04月10日 16:19
  • 500

Excel与XML相互转换 - C# 简单实现方案

Excel与XML相互转换 - C# 简单实现方案 在日常工作中,我需要将数据存储在Excel中进行数据分析和处理,然后再将数据转换为XML格式进行跨平台的数据交换。网上搜索Excel转换为XML的实...
  • Eiceblue
  • Eiceblue
  • 2017年02月27日 12:39
  • 3378

XML 和 List 互转类

XML 和 List 互转类   using System; using System.Collections.Generic; using System.Linq; using...
  • weizhiai12
  • weizhiai12
  • 2014年08月24日 11:49
  • 5009
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[转贴]C#的XML数使用示例(很久以前转的,忘记出处了,做个备份
举报原因:
原因补充:

(最多只允许输入30个字)