读写xml节点的数据总结

读:
//打开某文件(假设web.config在根目录中)
string filename=Server.MapPath("/") + @"WebApplication1web.config";
XmlDocument xmldoc= new XmlDocument();
xmldoc.Load(filename);

//得到顶层节点列表
XmlNodeList topM=xmldoc.DocumentElement.ChildNodes;
foreach(XmlElement element in topM)
{
if(element.Name.ToLower()=="appsettings")
{

//得到该节点的子节点
XmlNodeList nodelist=element.ChildNodes;

if ( nodelist.Count >0 )
{
//DropDownList1.Items.Clear();

foreach(XmlElement el in nodelist)//读元素值
{
//DropDownList1.Items.Add(el.Attributes["key"].InnerXml);
//this.TextBox2.Text=el.Attributes["key"].InnerText;
this.TextBox2.Text=el.Attributes["key"].Value;
this.Label1.Text=el.Attributes["value"].Value;

//同样在这里可以修改元素值,在后面save。
// el.Attributes["value"].Value=this.TextBox2.Text;
}

}

}

}

xmldoc.Save(filename);

在某节点下增加一个元素,并设置值:

if(element.Name.ToLower()=="appsettings")
{

XmlElement elem =xmldoc.CreateElement("add");

element.AppendChild(elem);
elem.InnerText="ltp";

xmldoc.Save(filename);

}

效果:
<appSettings>
<add key="密码" value="admin" />
<add>ltp</add>
</appSettings>

在某节点下增加一个元素,并增加两个属性:
if(element.Name.ToLower()=="appsettings")
{

XmlElement elem =xmldoc.CreateElement("add");
element.AppendChild(elem);

XmlAttribute xa=xmldoc.CreateAttribute("key");
xa.Value="ltp";

XmlAttribute xa2=xmldoc.CreateAttribute("value");
xa2.Value="first";

elem.SetAttributeNode(xa);
elem.SetAttributeNode(xa2);

xmldoc.Save(filename);

}

效果:
<appSettings>
<add key="密码" value="admin" />
<add key="ltp" value="first" />
</appSettings>

//添加空元素:
XmlNode node=doc.CreateElement(groupname);
node.InnerText="";
doc.LastChild.AppendChild(node);

doc.Save(xmlfile);

删除一个节点元素
string itemname=this.listBox1.SelectedItem.ToString();

this.listBox1.Items.Remove(this.listBox1.SelectedItem);

//begin del xmlfile
XmlDocument doc=new XmlDocument();
doc.Load(xmlfile);

XmlNodeList topM=doc.DocumentElement.ChildNodes;
foreach(XmlElement element in topM)
{
if(element.Name==this.comboBox1.Text)
{

//得到该节点的子节点
XmlNodeList nodelist=element.ChildNodes;

foreach(XmlElement el in nodelist)//读元素值
{
if(el.Attributes["key"].Value==itemname)
{
element.RemoveChild(el);
}

}//循环元素

}//得到组

}//循环组

doc.Save(xmlfile); //一定要保存一下,否则不起作用

//筛选数据
private void Reader_Xml(string pathFlie)
{
XmlDocument Xmldoc=new XmlDocument();
Xmldoc.Load(pathFlie);
XmlNodeList Record1=Xmldoc.DocumentElement.SelectNodes(Code[@id='1'])
int f=0;
foreach(XmlNode xnode in Record1)
{

}
}/**//*读取xml数据 两种xml方式*/
<aaa>
<bb>something</bb>
<cc>something</cc>
</aaa>

<aaa>
<add key="123" value="321"/>
</aaa>

/**//*第一种方法*/
DS.ReadXml("your xmlfile name");
Container.DataItem("bb");
Container.DataItem("cc");
DS.ReadXmlSchema("your xmlfile name");

/**//*第二种方法*/
<aaa>
<add key="123" value="321"/>
</aaa>
如果我要找到123然后取到321应该怎么写呢?

using System.XML;
XmlDataDocument xmlDoc = new System.Xml.XmlDataDocument();
xmlDoc.Load(@"c:Config.xml");
XmlElement elem = xmlDoc.GetElementById("add");
string str = elem.Attributes["value"].Value

/**//*第三种方法: SelectSingleNode 读取两种格式的xml *---/
--------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<ConnectionString>Data Source=yf; user id=ctm_dbo;password=123</ConnectionString>
</appSettings>
</configuration>
--------------------------------------------------------------------------
XmlDocument doc = new XmlDocument();
doc.Load(strXmlName);

XmlNode node=doc.SelectSingleNode("/configuration/appSettings/ConnectionString");
if(node!=null)
{
string k1=node.Value; //null
string k2=node.InnerText;//Data Source=yf; user id=ctm_dbo;password=123
string k3=node.InnerXml;//Data Source=yf; user id=ctm_dbo;password=123
node=null;
}

********************************************************************
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="ConnectionString" value="Data Source=yf; user id=ctm_dbo;password=123" />
</appSettings>
</configuration>
**--------------------------------------------------------------------**
XmlNode node=doc.SelectSingleNode("/configuration/appSettings/add");
if(node!=null)
{
string k=node.Attributes["key"].Value;
string v=node.Attributes["value"].Value;
node=null;
}
*--------------------------------------------------------------------*
XmlNode node=doc.SelectSingleNode("/configuration/appSettings/add");
if(node!=null)
{
XmlNodeReader nr=new XmlNodeReader(node);
nr.MoveToContent();
//检查当前节点是否是内容节点。如果此节点不是内容节点,则读取器向前跳至下一个内容节点或文件结尾。
nr.MoveToAttribute("value");
string s=nr.Value;
node=null;
}

转载于:https://www.cnblogs.com/pbwf/archive/2007/05/28/762521.html

读写xml节点的数据总结相关推荐

  1. 一文搞定Qt读写excel以及qt读写xml数据

    一文搞定Qt读写excel以及qt读写xml数据 最终的实现效果图 RC_ICONS = logo.ico .pro文件同级目录下加入 logo.ico 图标文件,运行文件,文件的图标就被写入软件 u ...

  2. 【Groovy】自定义 Xml 生成器 BuilderSupport ( 构造 Xml 节点类 | 封装节点名称、节点值、节点属性、子节点 | 将封装的节点数据转为 Xml 字符串 )

    文章目录 一.构造 Xml 节点类 1.封装节点名称.节点值.节点属性.子节点 2.将封装的节点数据转为 Xml 字符串 二.Xml 节点类完整代码 一.构造 Xml 节点类 生成 Xml 数据前 , ...

  3. 【Unity3d】C#使用XmlDocument读写xml冒号节点问题

    问题场景 笔者在开发Unity3d package时发现在使用C#的XmlDocument读写XML文件时,读写带冒号的节点时,冒号前的内容给忽略了. 举个例子,以下是AndroidManifest. ...

  4. tinyxml 读取文本节点_TinyXml 读写XML文件

    使用Tinyxml创建和读取XML文件的优点:1,可在Windows和Linux中使用:2,方便易学,易用,可在http://sourceforge.net/projects/tinyxml/获取源代 ...

  5. (3)[wp7数据存储] WP7 IsolatedStorage系列篇——通过XmlSerializer读写XML文件 [复制链接]...

    发表于 2012-5-17 15:51:07 |只看该作者 |倒序浏览 分享到: 本帖最后由 agameboy 于 2012-5-17 17:08 编辑 这一篇我们会通过XmlSerializer读写 ...

  6. OpenCV读写xml和yml文件

    有时候我们处理完图像后需要保存一下数据到文件上,以供下一步的处理.一个比较广泛的需求场景就是:我们对一幅图像进行特征提取之后,需要把特征点信息保存到文件上,以供后面的机器学习分类操作.那么如果遇到这样 ...

  7. Android读写XML(上)

    XML 经常用作 Internet 上的一种数据格式,其文件格式想必大家都比较清楚,在这里我结合Android平台,来说明Android SDK提供的读写XML的package. 首先介绍下Andro ...

  8. PHP怎么读写XML?(四种方法)

    PHP怎么读写XML?(四种方法) 一.总结 1.这四种方法中,字符串的方式是最原始的方法.SimpleXML和DOM扩展是属于基于树的解析器,把整个文档存储为树的数据结构中,需要把整个文档都加载到内 ...

  9. C#中读写Xml配置文件常用方法工具类

    场景 有时需要使用配置文件保存一些配置的属性,使其在下次打开时设置仍然生效. 这里以对xml配置文件的读写为例. 1.读取XML配置文. 2.写入XML配置文件. 3.匹配 XPath 表达式的第一个 ...

最新文章

  1. 多个div嵌套,获取鼠标所点击的div对象
  2. Python的numpy库中rand(),randn(),randint(),random_integers()的使用
  3. HTTP 错误 404.15 - Not Found请求筛选模块被配置为拒绝包含的查询字符串过长的请求...
  4. python判断实例的类型
  5. Exchange 2010 Mailtip 功能
  6. 最长连续序列Python解法
  7. 长安渝北工厂机器人_探秘长安UNI-T生产基地 智造工厂机器人24小时不休
  8. robot:接口入参为图片时如何发送请求
  9. jni中native通过adb输出
  10. 提高MyEclipse启动速度
  11. 哈希值之逆序数与变进制
  12. Docker 概述 与 CentOS 上安装、卸载、启动
  13. php天气预报小偷,php天气预报的小偷程序
  14. 局域网内连接其他计算机共享的打印机
  15. iOS 防键盘遮挡
  16. 【python基础】英文大小写函数
  17. mysql 触发器 sql server_喜忧参半的SQL Server触发器
  18. 群晖 阿里云ddns_群晖QuickConnect功能详解
  19. 微信小程序学习笔记(1)
  20. KNN分类——matlab(转载)

热门文章

  1. 如何正确访问Redis中的海量数据?服务才不会挂掉!
  2. 远望资本田鸿飞:中国产业互联网的关键是AI赋能
  3. Spring Boot 2.0 新特性和发展方向
  4. linux文件目录和属性知识,Linux文件和目录属性
  5. android 获取权限管理,Android常用权限获取和设置
  6. python高斯滤波和降噪_python添加高斯噪声和椒盐噪声,实现中值滤波和均值滤波,实现Roberts算子和Sobel算子...
  7. android 上滑隐藏view,Android CoordinatorLayout + AppBarLayout(向上滚动隐藏指定的View)
  8. 关键帧动画html例子,Bounce.js 是一个漂亮的CSS3关键帧动画生成工具和类库_前端开发者...
  9. 企业校园网的6大趋势
  10. 未来数据中心最需要的5种技能