问题描述
1.用C#读写XML文件2.将XML文件显示在文字框或者表格中求代码,讲解···
解决方案
解决方案二:
解决方案三:
谢谢····段子鹏
解决方案四:
不是用linq,是C#···
解决方案五:
读///<summary>///根据节点名称读取PersonalAccountSettings.xml中节点的InnerText值///</summary>///<paramname="nodeName">节点名称</param>///<returns>节点值</returns>publicstaticstringGetPersonalSettings(stringnodeName){stringnodeText=String.Empty;try{XmlDocumentxmlDoc=newXmlDocument();xmlDoc.Load(System.Windows.Forms.Application.StartupPath+"\Configuration\PersonalAccountSettings.xml");XmlNodexn=xmlDoc.SelectSingleNode("root//"+nodeName+"");nodeText=xn.InnerText;}catch{}returnnodeText;}
写///<summary>///根据节点名称设置PersonalAccountSettings.xml中节点的值///</summary>///<paramname="nodeName">节点名称</param>///<paramname="nodeValue">节点值</param>publicstaticvoidSetPersonalSettings(stringnodeName,stringnodeValue){try{XmlDocumentxmlDoc=newXmlDocument();xmlDoc.Load(System.Windows.Forms.Application.StartupPath+"\Configuration\PersonalAccountSettings.xml");XmlNodexn=xmlDoc.SelectSingleNode("root//"+nodeName+"");XmlNoderoot=xmlDoc.SelectSingleNode("root");//查找根节点if(null==xn){XmlElementelement=xmlDoc.CreateElement(nodeName);element.InnerText=nodeValue;root.AppendChild(element);}else{xn.InnerText=nodeValue;}xmlDoc.Save(System.Windows.Forms.Application.StartupPath+"\Configuration\PersonalAccountSettings.xml");}catch{}}
解决方案六:
引用3楼X_HanGIS的回复:
不是用linq,是C#···
linq只是一种解决方式么,可以自己百度百度常规的方法
解决方案七:
<?xmlversion="1.0"encoding="utf-8"?><root><LastLoginAccount>0002</LastLoginAccount></root>
解决方案八:
引用3楼X_HanGIS的回复:
不是用linq,是C#···
呀,你怎么把人家的名字给敲出来了。
解决方案九:
真名吗?Sorry~~~
解决方案十:
msdn看看,或者找本入门书看看。
解决方案十一:
用linqtoxml操作XML文件很方便的啊
解决方案十二:
引用8楼X_HanGIS的回复:
真名吗?Sorry~~~
C#仓井空
解决方案十三:
楼主这头像是楼主自己还是GF
解决方案十四:
解决方案十五:
<?xmlversion="1.0"encoding="utf-8"?><Base><Continentname="亚洲"><Countryname="中国"></Country><Countryname="日本"></Country></Continent><Continentname="欧洲"><Countryname="法国"></Country></Continent><Continentname="非洲"></Continent></Base>DataSetds=newDataSet();ds.ReadXml("test.xml");strings=ds.Tables[0].Rows[0][1].ToString();//亚洲strings1=ds.Tables[0].Rows[1][1].ToString();//欧洲strings2=ds.Tables[0].Rows[2][1].ToString();//非洲stringss=ds.Tables[1].Rows[0][0].ToString();//中国stringss1=ds.Tables[1].Rows[1][0].ToString();//日本stringss2=ds.Tables[1].Rows[2][0].ToString();//法国
解决方案:谢谢大神们···百忙之中能帮我!
解决方案:C#读写XML文件示例//读取XML文件数据//调用公共类中的GetData方法,读取XML文件中的数据privateobjectGetData(DataTabledt,stringsColumnName,stringdColumnName,stringsValue){DataRow[]rows=dt.Select(sColumnName+"='"+sValue+"'");if(rows.Length<=0)returnnull;returnrows[0][dColumnName];}//codego.net/tags/23/1///调用公共类GetData显示数据publicstaticDataTableGetData(stringpath,stringtableName,paramsXmlParamter[]param){//创建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;intoperationCount=0;StringBuilderoperation=newStringBuilder();foreach(XmlParamterpinparam){if(p.Direction==ParameterDirection.Insert||p.Direction==ParameterDirection.Update){continue;}///创建条件表达式switch(p.Direction){caseParameterDirection.Equal:operation.Append("@"+p.Name+"='"+p.Value+"'");break;caseParameterDirection.NotEqual:operation.Append("@"+p.Name+"<>'"+p.Value+"'");break;caseParameterDirection.Little:operation.Append("@"+p.Name+"<'"+p.Value+"'");break;caseParameterDirection.Great:operation.Append("@"+p.Name+">'"+p.Value+"'");break;caseParameterDirection.Like:operation.Append("contains(@"+p.Name+",'"+p.Value+"')");break;default:break;}operationCount++;operation.Append("and");}if(operationCount>0){///修正XPathoperation.Remove(operation.Length-5,5);xmlPath+="["+operation.ToString()+"]";}//获取XML节点下的所有节点XmlNodeListnodeList=xmldoc.SelectNodes(xmlPath);///遍历所有节点,并添加节点的数据foreach(XmlNodenodeinnodeList){DataRowrow=dt.NewRow();foreach(DataColumncolumnindt.Columns){///读取每一个属性row[column.ColumnName]=node.Attributes[column.ColumnName].Value;}dt.Rows.Add(row);}returndt;}//向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())};//调用公共类中的AddXmlData向XML数据库中添加数据return(XmlDatabase.AddXmlData(XmlBBS.TitleFilePath,TitleTableName,param));}//添加数据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;}