您好,登錄后才能下訂單哦!
如何讀寫xml所有節(jié)點個人小結和讀取xml節(jié)點的數(shù)據(jù)?這個問題可能是我們?nèi)粘W習或工作經(jīng)常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!
讀:
//打開某文件(假設web.config在根目錄中) string filename=Server.MapPath("/") + @"Webapplication1\web.config"; xmlDocument xmldoc= new XmlDocument(); xmldoc.Load(filename); //得到頂層節(jié)點列表 XmlNodeList topM=xmldoc.DocumentElement.ChildNodes; foreach(XmlElement element in topM) { if(element.Name.ToLower()=="appsettings") { //得到該節(jié)點的子節(jié)點 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);
在某節(jié)點下增加一個元素,并設置值:
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>
在某節(jié)點下增加一個元素,并增加兩個屬性:
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);
刪除一個節(jié)點元素
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) { //得到該節(jié)點的子節(jié)點 XmlNodeList nodelist=element.ChildNodes; foreach(XmlElement el in nodelist)//讀元素值 { if(el.Attributes["key"].Value==itemname) { element.RemoveChild(el); } }//循環(huán)元素 }//得到組 }//循環(huán)組 doc.Save(xmlfile); //一定要保存一下,否則不起作用 //篩選數(shù)據(jù) 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數(shù)據(jù) 兩種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(); //檢查當前節(jié)點是否是內(nèi)容節(jié)點。如果此節(jié)點不是內(nèi)容節(jié)點,則讀取器向前跳至下一個內(nèi)容節(jié)點或文件結尾。 nr.MoveToAttribute("value"); string s=nr.Value; node=null; }
感謝各位的閱讀!看完上述內(nèi)容,你們對如何讀寫xml所有節(jié)點個人小結和讀取xml節(jié)點的數(shù)據(jù)大概了解了嗎?希望文章內(nèi)容對大家有所幫助。如果想了解更多相關文章內(nèi)容,歡迎關注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。