首页 > Web开发 > 详细

读写xml所有节点个人小结 和 读取xml节点的数据总结

时间:2016-02-07 13:00:23      阅读:195      评论:0      收藏:0      [点我收藏+]
读: 
技术分享    
//打开某文件(假设web.config在根目录中)
技术分享
    string filename=Server.MapPath("/"+ @"WebApplication1\web.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;
技术分享    }

读写xml所有节点个人小结 和 读取xml节点的数据总结

原文:http://www.jb51.net/article/7945.htm

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!