C#写一个读写XML文件的程序

问题描述

写一程序可以修改写入读取XML文件的程序

解决方案

解决方案二:
学习一下:
解决方案三:

解决方案四:
XDocument,XmlDocument,XmlSerializer都可以,看需求了。
解决方案五:
//利用递归获取xml的所有节点(元素也是节点)publicvoidRecurseXml(XmlNoderoot,intindex){if(root==null){return;}if(rootisXmlElement){tbxContent.Text+=root.Name.PadLeft(root.Name.Length+index)+Environment.NewLine;//换行if(root.HasChildNodes){RecurseXml(root.FirstChild,index+1);}if(root.NextSibling!=null){RecurseXml(root.NextSibling,index+2);}}elseif(rootisXmlText){stringtext=((XmlText)root).Value;tbxContent.Text+=text.PadLeft(text.Length+index)+Environment.NewLine;}elseif(rootisXmlAttribute){stringtext=((XmlAttribute)root).Value;tbxContent.Text+=text.PadLeft(text.Length+index)+Environment.NewLine;}elseif(rootisXmlComment){stringtext=((XmlComment)root).Value;tbxContent.Text+=text.PadLeft(text.Length+index)+Environment.NewLine;}}//获取属性值publicstringReadXml(XmlNoderoot,stringkeys){stringstrReturn="";if(root.Name.ToLower()=="phone"){XmlNodeListnodeList=root.ChildNodes;if(nodeList!=null){foreach(XmlElementeinnodeList){if(e.Attributes["name"].InnerXml.ToLower()==keys.ToLower()){strReturn=e.Attributes["price"].InnerText;break;}}}}returnstrReturn;}

解决方案六:
网上一搜一箩筐。。。。。。不过你要就着网上那样写的方式去访问和传参。
解决方案七:

解决方案八:
读写XML数据文件//读取XML文件数据//调用公共类中的GetData方法,读取XML文件中的数据privateobjectGetData(DataTabledt,stringsColumnName,stringdColumnName,stringsValue){DataRow[]rows=dt.Select(sColumnName+"='"+sValue+"'");if(rows.Length<=0)returnnull;returnrows[0][dColumnName];}//通过内存数据表读取publicstaticDataTableGetData(stringpath,stringtableName){//创建XmlDocument类的实例XmlDocumentxmldoc=newXmlDocument();//调用XmlDocument类中的Load()方法加载XML文件xmldoc.Load(path);//创建DataTable类型的变量dtDataTabledt=newDataTable();///获取根节点XmlNoderootNode=xmldoc.SelectSingleNode("/"+tableName+"s");//判断节点及其子节点是否为空,为空将返空值if(rootNode==null)returnnull;if(rootNode.ChildNodes.Count<=0)returnnull;///创建保存记录的数据列foreach(XmlAttributeattrinrootNode.ChildNodes[0].Attributes){dt.Columns.Add(newDataColumn(attr.Name,typeof(string)));}///创新获取数据节点的XPathstringxmlPath="/"+tableName+"s/"+tableName;//获取XML节点下的所有节点XmlNodeListnodeList=xmldoc.SelectNodes(xmlPath);//遍历所有节点foreach(XmlNodenodeinnodeList){//创建数据表行,并在其中添加数据DataRowrow=dt.NewRow();foreach(DataColumncolumnindt.Columns){///读取每一个属性row[column.ColumnName]=node.Attributes[column.ColumnName].Value;}//CodeGo.net///将数据表行添加到数据表中dt.Rows.Add(row);}//返回DataTable对象dtreturndt;}//写入XML数据publicintAddTitle(stringname,stringbody,intuserID,intboardID,bytestate){XmlParamter[]param={XmlDatabase.CreateInsertParameter("Name",name),XmlDatabase.CreateInsertParameter("Body",body),XmlDatabase.CreateInsertParameter("UserID",userID.ToString()),XmlDatabase.CreateInsertParameter("BoardID",boardID.ToString()),XmlDatabase.CreateInsertParameter("CreateDate",DateTime.Now.ToShortDateString()),XmlDatabase.CreateInsertParameter("VisitNum","0"),XmlDatabase.CreateInsertParameter("ReplyNum","0"),XmlDatabase.CreateInsertParameter("State",state.ToString())};return(XmlDatabase.AddXmlData(XmlBBS.TitleFilePath,TitleTableName,param));}//添加节点数据封装在XmlDatabase类中publicstaticintAddXmlData(stringpath,stringtableName,paramsXmlParamter[]param){//创建XmlDocument类的实例XmlDocumentxmldoc=newXmlDocument();//调用XmlDocument类中的Load()方法加载XML文件xmldoc.Load(path);///选择根节点XmlNodenode=xmldoc.SelectSingleNode("/"+tableName+"s");if(node==null)return-1;///创建新记录的ID值intnewID;if(node.LastChild==null){newID=1;}else{newID=DataTypeConvert.ConvertToInt(node.LastChild.Attributes["ID"].Value)+1;}if(newID<1)return-1;///创建一个新节点XmlNodenewNode=xmldoc.CreateNode(XmlNodeType.Element,tableName,null);if(newNode==null)return-1;///添加ID的值newNode.Attributes.Append(CreateNodeAttribute(xmldoc,"ID",newID.ToString()));///添加新节点的属性foreach(XmlParamterpinparam){newNode.Attributes.Append(CreateNodeAttribute(xmldoc,p.Name,p.Value));}///将新节点追加到根节点中node.AppendChild(newNode);//保存XML文档xmldoc.Save(path);returnnewID;}
解决方案九:
自带类库,好像是sytem.xml,挺好用,看msdn

时间: 2024-10-14 23:30:44

C#写一个读写XML文件的程序的相关文章

微软-用c# 写的一个解压文件的程序 解压之后里面的文件不见了 贴上代码~

问题描述 用c# 写的一个解压文件的程序 解压之后里面的文件不见了 贴上代码~ string the_rar; RegistryKey the_Reg; object the_Obj; string the_Info; try { the_Reg = Registry.LocalMachine.OpenSubKey(@"SOFTWAREMicrosoftWindowsCurrentVersionApp PathsWinRAR.exe"); the_Obj = the_Reg.GetVa

用C#读写XML文件

问题描述 1.用C#读写XML文件2.将XML文件显示在文字框或者表格中求代码,讲解··· 解决方案 解决方案二: 解决方案三: 谢谢····段子鹏解决方案四: 不是用linq,是C#···解决方案五: 读///<summary>///根据节点名称读取PersonalAccountSettings.xml中节点的InnerText值///</summary>///<paramname="nodeName">节点名称</param>///&

linux下怎么写一个自动创建文件夹和文件的脚本?

问题描述 linux下怎么写一个自动创建文件夹和文件的脚本? linux下怎么写一个自动创建文件夹和文件的脚本?就是说我给一个绝对路径,程序会自动帮我创建在路径中没有的文件夹和文件. 解决方案 http://blog.csdn.net/hellochenlian/article/details/37566269 -p, --parents 可以是一个路径名称.此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录; 解决方案二: mkdir 加上

读写xml文件的2个小函数

xml|函数 #region 读写xml文件的2个小函数,2005 4 2 by hyc  public void SetXmlFileValue(string xmlPath,string AppKey,string AppValue)//写xmlPath是文件路径+文件名,AppKey是 Key Name,AppValue是Value  {   XmlDocument xDoc = new XmlDocument();   xDoc.Load(xmlPath);   XmlNode xNod

windows-用MFC写一个window蓝牙通讯的程序需要用到哪些

问题描述 用MFC写一个window蓝牙通讯的程序需要用到哪些 在vs2013环境下用MFC写一个window蓝牙通讯的程序,需要哪些东西,要Windows SDK吗?vs 2013是否自带有 windows SDK? 解决方案 #include < Winsock2.h > #include < Ws2bth.h > #include < BluetoothAPIs.h > #pragma comment(lib, "ws2_32.lib") #p

c语言-如何用C语言写一个暴力破解SSH的程序

问题描述 如何用C语言写一个暴力破解SSH的程序 也就是用同文件夹里的一个字典,可以用fopen和fgets把密码一条一条打开,可是我不知道怎么在C语言里对一个其他地址进行SSH 求大神解答 解决方案 C语言没有 SSH 的功能,所以需要你去自己搞 SSH 算法. 解决方案二: 参考openssh,这个是开源的,可以用它来调用,连接http://www.openssh.com/

Vc 读写xml文件二个实例

vc 读写xml文件二个实例 <?xml version="1.0" encoding="gb2312"?>   <root> <device id="10041" name="设备1">   <type>13 </type>   <typename>保护 </typename>   </device>  </root>

读写xml文件的2个小函数_XML示例

要利用DOM 来存取XML 文件,你必须将XML 文件连结到HTML 网页上. #region 读写xml文件的2个小函数,2005 4 2 by hyc  public void SetXmlFileValue(string xmlPath,string AppKey,string AppValue)//写xmlPath是文件路径+文件名,AppKey是 Key Name,AppValue是Value { XmlDocument xDoc = new XmlDocument(); xDoc.L

一个读取xml文件内容的类

xml 一个读取xml文件内容的类 package project.util.xml; import java.io.*;import java.util.*;import javax.servlet.http.*;import org.apache.log4j.*;import org.jdom.*;import org.jdom.input.*; /*** <p>Title: <font color="steelblue" size="10"&