`
yang_min
  • 浏览: 338850 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

添加、修改、删除xml节点

XML 
阅读更多
已知有一个XML文件(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> 
</bookstore> 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);//显示子节点点文本 
    } 
  }

 

分享到:
评论
1 楼 hualuohen 2011-08-17  
谢谢了,很不错,现在急用,谢谢您的分享!!!

相关推荐

    grpcio-1.47.0-cp310-cp310-linux_armv7l.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    小程序项目源码-美容预约小程序.zip

    小程序项目源码-美容预约小程序小程序项目源码-美容预约小程序小程序项目源码-美容预约小程序小程序项目源码-美容预约小程序小程序项目源码-美容预约小程序小程序项目源码-美容预约小程序小程序项目源码-美容预约小程序小程序项目源码-美容预约小程序v

    MobaXterm 工具

    MobaXterm 工具

    grpcio-1.48.0-cp37-cp37m-linux_armv7l.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    扁平风格PPT可修改ppt下载(11).zip

    扁平风格PPT可修改ppt下载(11).zip

    基于MATLAB实现的msk信号调制解调过程,包括发送端及接收端信号谱分析过程+使用说明文档.rar

    CSDN IT狂飙上传的代码均可运行,功能ok的情况下才上传的,直接替换数据即可使用,小白也能轻松上手 【资源说明】 基于MATLAB实现的msk信号调制解调过程,包括发送端及接收端信号谱分析过程+使用说明文档.rar 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2020b;若运行有误,根据提示GPT修改;若不会,私信博主(问题描述要详细); 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可后台私信博主; 4.1 期刊或参考文献复现 4.2 Matlab程序定制 4.3 科研合作 功率谱估计: 故障诊断分析: 雷达通信:雷达LFM、MIMO、成像、定位、干扰、检测、信号分析、脉冲压缩 滤波估计:SOC估计 目标定位:WSN定位、滤波跟踪、目标定位 生物电信号:肌电信号EMG、脑电信号EEG、心电信号ECG 通信系统:DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理+传输+分析+去噪、数字信号调制、误码率、信号估计、DTMF、信号检测识别融合、LEACH协议、信号检测、水声通信 5、欢迎下载,沟通交流,互相学习,共同进步!

    有色金属行业周报有色金属稳增长目标明确工业及贵金属价格普涨-19页.pdf.zip

    有色金属行业周报有色金属稳增长目标明确工业及贵金属价格普涨-19页.pdf

    Java_Tinker是Android的热修复解决方案库,它支持索引库和资源更新,无需重新安装apk.zip

    Java_Tinker是Android的热修复解决方案库,它支持索引库和资源更新,无需重新安装apk

    基于Python的联邦学习驾驶员状态分类设计源码

    联邦学习驾驶员状态分类设计源码:该项目基于Python开发,包含20个文件,主要使用Python语言。该项目利用VGG19、efficientnet和Resnet50等深度学习模型对驾驶员状态数据集进行分类。近期工作中,项目加入了联邦学习的方法,引入了Shapley值和激励机制,以提高模型的准确性和鲁棒性。

    番薯社区app源码分享

    比较上次: 1. 更换了图文混编显示,使用 setspan+glide 图片加载实现 2. 增加了全局主题选择 (用户自定义颜色只能实现部分对方) 3. 增加了历史记录和历史访问记录 4. 新添选择 帖子列表 样式 (简约风, 卡片风, 交流风, 西北风) 5. 除了查看帖子外,新增了 APP 界面风,用于介绍某一文件或某一 APP。 反正就逐渐向社区迈进,远离记录日常笔记 APP 越来越远了 文件后缀是.tsp 懂的拿着玩玩吧

    下雨天适合吃火锅的文案.docx

    下雨天适合吃火锅的文案.docx

    基于Swift的EasyDropDownMenu筛选排序菜单设计源码

    EasyDropDownMenu筛选排序菜单设计源码:该项目基于Swift开发,包含60个文件,主要使用Swift语言。该设计源码实现了类似美团、糯米、大众点评的筛选排序菜单,适用于iOS应用中的筛选和排序功能,以提供用户更直观、便捷的交互体验。

    520表白代码,你值得拥有

    表白代码是一种利用编程技术,通过特定的代码语言和结构来传达爱意的方式。这些代码可以通过多种方式实现,例如使用微信、网页、弹窗提示、控制台输出、图形绘制等,并且可以根据不同的场景和效果选择合适的表白方式。 以下是一些表白代码的示例和介绍: 微信表白代码:这是一种利用微信平台,通过发送包含特定代码的消息来传达爱意的方式。例如,可以使用一些有趣的代码,如“我想要两颗西柚”(实际上是“1 want to see you”,意为“我想要见你”)或者“Mg+ZnSO4==MgSO4+Zn”(意为“你的镁夺走了我的锌”,暗指“你的美丽夺走了我的心”)。 网页表白代码:通过创建一个包含特定动画、文字或图像的网页,来传达爱意。这种表白方式可以在网页上添加背景音乐、动画效果、表单提交等功能,使得表白更加生动和有趣。 弹窗提示表白代码:在打开某个网页或程序时,弹出一个包含表白信息的提示框。这种表白方式可以在用户不经意间触发,带来惊喜和感动。 控制台输出表白代码:在编程环境(如Python、JavaScript等)的控制台中输出一段表白的话语或图案。

    HTML+CSS制作的个人博客网页.zip

    如标题所述,内有详细说明

    基于MATLAB实现的杨氏双缝,光的干涉实验,基于滑动块改变参数+GUI界面+使用说明文档.zip

    CSDN IT狂飙上传的代码均可运行,功能ok的情况下才上传的,直接替换数据即可使用,小白也能轻松上手 【资源说明】 基于MATLAB实现的杨氏双缝,光的干涉实验,基于滑动块改变参数+GUI界面+使用说明文档.zip 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2020b;若运行有误,根据提示GPT修改;若不会,私信博主(问题描述要详细); 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可后台私信博主; 4.1 期刊或参考文献复现 4.2 Matlab程序定制 4.3 科研合作 功率谱估计: 故障诊断分析: 雷达通信:雷达LFM、MIMO、成像、定位、干扰、检测、信号分析、脉冲压缩 滤波估计:SOC估计 目标定位:WSN定位、滤波跟踪、目标定位 生物电信号:肌电信号EMG、脑电信号EEG、心电信号ECG 通信系统:DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理+传输+分析+去噪、数字信号调制、误码率、信号估计、DTMF、信号检测识别融合、LEACH协议、信号检测、水声通信 5、欢迎下载,沟通交流,互相学习,共同进步!

    grpcio-1.45.0-cp310-cp310-linux_armv7l.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    grpcio-1.47.0-cp39-cp39-linux_armv7l.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    水泥混凝土用粗集料针片状颗粒含量试验记录表.docx

    水泥混凝土用粗集料针片状颗粒含量试验记录表.docx

    dotnet-core-uninstall-1.7.521001 github上下载下来,从github下载不下来时,可以使用这

    dotnet-core-uninstall-1.7.521001 github上下载下来,从github下载不下来时,可以使用这个,微软官方提供的.NET 卸载工具 C:\Windows\system32>dotnet-core-uninstall remove --all --sdk The following items will be removed: To avoid breaking Visual Studio or other problems, read https://aka.ms/dotnet-core-uninstall-docs. Do you want to continue? [y/n] n 我用着效果不好,没卸载掉dontnet

    Java_橙汁的算法.zip

    Java_橙汁的算法

Global site tag (gtag.js) - Google Analytics