XML相关操作
一、简单介绍
using System.Xml;
//初始化一个xml实例
XmlDocument xml=new XmlDocument();
//导入指定xml文件
xml.Load(path);
xml.Load(HttpContext.Current.Server.MapPath("~/file/bookstore.xml"));
//指定一个节点
XmlNode root=xml.SelectSingleNode("/root");
//获取节点下所有直接子节点
XmlNodeList childlist=root.ChildNodes;
//判断该节点下是否有子节点
root.HasChildNodes;
//获取同名同级节点集合
XmlNodeList nodelist=xml.SelectNodes("/Root/News");
//生成一个新节点
XmlElement node=xml.CreateElement("News");
//将节点加到指定节点下,作为其子节点
root.AppendChild(node);
//将节点加到指定节点下某个子节点前
root.InsertBefore(node,root.ChildeNodes[i]);
//为指定节点的新建属性并赋值
node.SetAttribute("id","11111");
//为指定节点添加子节点
root.AppendChild(node);
//获取指定节点的指定属性值
string id=node.Attributes["id"].Value;
//获取指定节点中的文本
string content=node.InnerText;
//保存XML文件
string path=Server.MapPath("~/file/bookstore.xml");
xml.Save(path);
//or use :xml.Save(HttpContext.Current.Server.MapPath("~/file/bookstore.xml"));
二、具体实例
新建xml文档 名字为userinfo.xml:
内容:
<UserInfo>
<Persion id="001">
<name>李鹏</name>
<gender>男</gender>
</Persion>
<Persion id="002">
<name>小明</name>
<gender>男</gender>
</Persion>
<Persion id="003">
<name>小花</name>
<gender>女</gender>
</Persion>
</UserInfo>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml;
using System.IO; namespace WebApplication1
{
public partial class Test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string path;
path = Server.MapPath("file/userinfo.xml");
if (File.Exists(path))
{
lblFile.Text = "文件存在";
}
//首先加载这个xml文档
XmlDocument xml = new XmlDocument();
xml.Load(path); #region 一:节点的加载
//获取userinfo节点
XmlNode node = xml.SelectSingleNode("UserInfo");
//获取Persion节点集合
XmlNodeList nodeList = xml.SelectNodes("/UserInfo/Persion"); //获取Persion节点的属性为id的value
foreach (XmlNode aN in nodeList)
{
XmlElement axe = (XmlElement)aN;
//第一种方法
string str = axe.GetAttribute("id");
//第二种方法
string str1 = axe.Attributes["id"].Value; } //获取到第一个persion节点的子节点
XmlNodeList nodeList2 = node.FirstChild.ChildNodes; foreach (XmlNode aN in nodeList2)
{
XmlElement axe = (XmlElement)aN;
string biaoqian = axe.Name;
string value = axe.InnerXml; }
#endregion #region 二:新XML文档的建立与节点操作(对data.xml操作)
XmlDocument xmldoc = new XmlDocument();
//加入XML的声明段落,<?xml version="1.0" encoding="gb2312"?>
XmlDeclaration xmldecl;
xmldecl = xmldoc.CreateXmlDeclaration("1.0", "utf-8", null);
xmldoc.AppendChild(xmldecl); //加入一个根元素
XmlElement xmlelem = xmldoc.CreateElement("", "User", "");
xmldoc.AppendChild(xmlelem);
//加入另外一个元素 XmlNode root = xmldoc.SelectSingleNode("User");//查找<User>
XmlElement xe1 = xmldoc.CreateElement("Persion");//创建一个<Node>节点
xe1.SetAttribute("id", "");//设置该节点id属性 root.AppendChild(xe1);//将persion添加到<User>节点中 XmlElement xesub1 = xmldoc.CreateElement("name");
xesub1.InnerText = "李鹏";//设置文本节点
xe1.AppendChild(xesub1);//添加到<Node>节点中
XmlElement xesub2 = xmldoc.CreateElement("gender");
xesub2.InnerText = "男";
xe1.AppendChild(xesub2);
XmlElement xesub3 = xmldoc.CreateElement("age");
xesub3.InnerText = "";
xe1.AppendChild(xesub3); //保存创建好的XML文档
xmldoc.Save(Server.MapPath("~/file/data.xml")); #endregion #region 三:修改节点的值和删除一个节点(对userinfo.xml操作)
XmlNodeList NDs = xml.SelectNodes("/UserInfo/Persion");
foreach (XmlNode axn in NDs)
{ XmlElement axe = (XmlElement)axn;
string str = axe.GetAttribute("id");
if (str == "")
{
XmlElement axelm = xml.CreateElement("age");
axelm.InnerXml = ""; axn.AppendChild(axelm);
}
if (str == "")
{
//必须要用父节点移除子节点
node.RemoveChild(axe);
}
}
xml.Save(Server.MapPath("~/file/userinfo.xml"));
#endregion }
}
}
结果:
<UserInfo>
<Persion id="001">
<name>李鹏</name>
<gender>男</gender>
</Persion>
<Persion id="002">
<name>小明</name>
<gender>男</gender>
<age>20</age>
</Persion>
</UserInfo>
XML相关操作的更多相关文章
- VS2012 Unit Test —— 我对IdleTest库动的大手术以及对Xml相关操作进行测试的方式
[1]我的IdleTest源码地址:http://idletest.codeplex.com/ [2]IdleTest改动说明:2013年10月份在保持原有功能的情况下对其动了较大的手术,首先将基本的 ...
- C# XML相关操作
XML是一种意见单文本格式存储数据的方式,这意味着它可以被任何计算机读取.XML中完整的数据集就是XML文档. 在名称空间System.Xml下面大部分类型都是用来支持DOM处理模型的.其中很多类型配 ...
- sql server中对xml进行操作
一.前言 SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和参数.为了更好地支持 XM ...
- XML相关知识全接触(一)
XML文件格式已经出来很久了.他的风头如今在JSON.YAML等新兴文件格式的冲击下已经显的不那么强劲.但是XML仍然是当今世界上使用最广泛的文件格式.围绕着它也有一大堆的概念和知识点.所以我们还是很 ...
- JqGrid相关操作
JqGrid相关操作 根据jqGrid的文档,要想生成一个jqGrid,最直接的方法就是:$("#grid_id").jqGrid(options);也就是通过选择符得到一个tab ...
- 利用JAVA API远程进行HDFS的相关操作
学习HDFS有一段时间了,现在把自己总结的HDFS的相关操作代码展示给大家. 主要有HDFS的增删改查,文件的追加,windows本地文件的上传,hdfs文件的下载,文件重命名,创建目录,文件是否存在 ...
- XML相关知识
XML的定义: XML即可扩展标记语言标记是指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等.如何定义这些标记,既可以选择国际通用的标记语言,比如HTML,也可以使用 ...
- DateTimeHelper【日期类型与字符串互转以及日期对比相关操作】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 实现日期和字符串之间的转换以及日期的相关操作: 1.日期格式的字符串输出为Date类型: 2.将Date类型以指定格式输出: 3.将 ...
- 关于C#资源文件的相关操作
关于资源文件的相关操作. //1.比较常见的有获取资源文件对应的文件流,然后转换到相对应的文件 //比较典型的做法是通过代码程序集加载指定资源 //如下通过Assembly的静态方法GetExecut ...
随机推荐
- JAX-WS(三)构建简单webservice部署到tomcat上
前言: 虽然构建本地的jax-ws的webservice很简单,但要部署到tomcat上要绕过点弯. tomcat本身和jdk都没有jaw-ws的API,所以部署的时候需要额外做点事情,有两种选择 1 ...
- JAX-WS(二)之使用wsimport创建WebService客户端
客户端开发的通常过程是从已有的WSDL处罚,创建辅助类JAXB对象和Service代理类,然后基于这些类开发自己的客户端应用. 开发步骤: 创建eclipse项目: 运行wsimport命令生成客户端 ...
- 《30天自制操作系统》04_day_学习笔记
harib01a: P65 用C语言实现内存写入 实现一个往黑画面上写入东西的函数 修改了naskfunc.nas中的内容 在bootpack.c中 用write_mem8()函数将VRMA中全部写入 ...
- IOS Suppot Font 苹果默认支持的字体一览(配图)
这些字体都是IOS设备(使用ipad2测试) 默认支持的字体,也就是在AIR中不用设置绑定字体情况下 看到的样子 感觉上应该IOS仅为中文设置了一种字体就是 Heiti SC
- 【Origin】 碑铭
快意人生潇洒过, 飘渺岁月不留痕: 他朝墓穴成青冢, 宁不留名念此生. -作于二零一五年六月十日
- php4.3.4.4、apache2.0.4.8、mysql 4.0.26、window7 配置过程
apache的安装不需要过程,直接默认安装,下一步 下一步就Ok了. php4的安装: 1 将php-4.0.4-Win32.zip(最新版本4.0.4)解压缩到硬盘的一个目录中,例如解压到E:php ...
- 经过本人 6 年.net 工作经验证明 .net 工资确实比 Java 低
很久没有逛博客园了,很久没有出来吐槽了.怎么呢?生活压力大,就需要找地方吐槽. 排版不怎么好,文笔不怎么好,可以看出我不是雇佣的写手. 工作到今夏,已经有6个年头了,一直使用着.net技术,但是最近工 ...
- paper 88:人脸检测和识别的Web服务API
本文汇总了全球范围内提供基于Web服务的人脸检测和识别的API,便于网络中快速部署和人脸相关的一些应用. 1:从How-old的火爆说起 最开始,网站的开发者只是给一个几百人的群发送email,请他们 ...
- 用WIN7系统IIS的提示:数据库连接出错,请检查Conn.asp文件中的数据库参数设置
我用科讯的从4.0开始,去年开始很少用科讯做新站了,今天拿来做一下,结果悲剧了,数据库路径老是不对,百度一番又一番的,,最后终于给度娘解决了.分享出来给遇到同样的问题的人. 用WIN7系统IIS的注意 ...
- 更改EBS APPS 密码流程
更改EBS APPS 密码流程 (更改完后重启APP 和DB)2008-1-4 在EBS11.5.10.2环境应用成功! 参考metalink Note:160337.1 How To Manual ...