2012-09-03 98 views
0

有人可以幫我做這個嗎? 我希望他自動增量,但他沒有。 你能幫我做這個嗎?XML文件中的自動增量ID

我的代碼是:

XmlDocument xmlDoc = new XmlDocument(); 
    xmlDoc.Load(Server.MapPath(@"Participantes.xml")); 


    XmlElement newElement = xmlDoc.CreateElement("ID" **/* this is need auto-increment */**); 
    XmlElement xmlNome = xmlDoc.CreateElement("Nome"); 
    XmlElement xmlClass = xmlDoc.CreateElement("Classe"); 
    XmlElement xmlFaccao = xmlDoc.CreateElement("Facção"); 
    XmlElement xmlLevel = xmlDoc.CreateElement("Level"); 


    xmlNome.InnerText = this.TextBox_I1.Text.Trim(); 
    xmlClass.InnerText = this.Class_I1.SelectedItem.Text.Trim(); 
    xmlFaccao.InnerText = this.Faccao.SelectedItem.Text.Trim(); 
    xmlLevel.InnerText = this.TextBox_lvl.Text.Trim(); 

    newElement.AppendChild(xmlNome); 
    newElement.AppendChild(xmlClass); 
    newElement.AppendChild(xmlFaccao); 
    newElement.AppendChild(xmlLevel); 

    xmlDoc.DocumentElement.AppendChild(newElement); 
    xmlDoc.Save(Server.MapPath(@"Participantes.xml")); 

任何人都可以幫助,我呢? 任何人都知道這是怎麼回事?

__ _ __ _ __ _ _編輯09/05/2012 _ __ _ __ _ __ _ __ _

解決方案:

 XmlDocument xmlDoc = new XmlDocument(); 
     xmlDoc.Load(Server.MapPath(@"Participantes.xml")); 


     var x = xmlDoc.GetElementsByTagName("ID"); 
     int Max = 0; 
     foreach (XmlElement item in x) 
     { 
      int ultimoID = Convert.ToInt32(item.GetAttribute("value")); 
      if (ultimoID > Max) 
      { 
       Max = ultimoID; 
      } 
     } 
     Max++; 


     XmlElement newElement = xmlDoc.CreateElement("ID"); 
     newElement.SetAttribute("value", Max.ToString()); 
     XmlElement xmlNome = xmlDoc.CreateElement("Nome"); 
     XmlElement xmlClass = xmlDoc.CreateElement("Classe"); 
     XmlElement xmlFaccao = xmlDoc.CreateElement("Facção"); 
     XmlElement xmlLevel = xmlDoc.CreateElement("Level"); 


     xmlNome.InnerText = this.TextBox_I1.Text.Trim(); 
     xmlClass.InnerText = this.Class_I1.SelectedItem.Text.Trim(); 
     xmlFaccao.InnerText = this.Faccao.SelectedItem.Text.Trim(); 
     xmlLevel.InnerText = this.TextBox_lvl.Text.Trim(); 

     newElement.AppendChild(xmlNome); 
     newElement.AppendChild(xmlClass); 
     newElement.AppendChild(xmlFaccao); 
     newElement.AppendChild(xmlLevel); 

     xmlDoc.DocumentElement.AppendChild(newElement); 
     xmlDoc.Save(Server.MapPath(@"Participantes.xml")); 

使用屬性... 因爲我們必須遵循標準的XML。 選擇ID以使用GetElementsByTagName設置值! 使用foreach驗證Attribute「value」並使用SetAttribute插入+1

+2

開始你有一個你希望得到的XML看起來如何的例子? –

回答

0

這是您需要的嗎?

int iID = 0; 

XmlElement newElement = xmlDoc.CreateElement("ID_" + iID++.ToString()) 

,剩下的就是一樣的...

我已經添加了「ID_」因爲我不知道,如果一個XML標籤名可以以數字

+0

這是返回此: 諾姆 CLASSE Facção user1644656

+0

@ user1644656 - 你永遠不指定你想要的看... –

+0

主線程編輯! – user1644656