2012-01-06 45 views
0

我想遍歷一個xml文件並在文本框中顯示值,但是我的文本框一次只顯示一個值。在調試模式下,我可以看到所有的值。這是我的代碼。如何正確循環訪問Xml文件並在TextBox中顯示值?

void timer1_Tick(object sender, EventArgs e) 
{ 
    XDocument xd = XDocument.Load(@"D:\satish1\na.xml"); 
    var query = from p in xd.Descendants("item") 
       select new 
       { 
        //name = p.Element("title").Value, 
        des = p.Element("description").Value 
       }; 
    foreach (var p in query) 
    { 
     //tbs.Text = p.name.ToString(); 
     title.Text = p.des.ToString(); 
    } 
} 

我將如何連續重複所有值;我的計時器TimeSpan是5秒鐘。

回答

0

您正在使用的foreach,因此,當過你的代碼退出的功能,你將只分配到文本框中最後一個值。做這樣的事情:

//Have one private variable, to store data from XML 
private int _counter = 0; 
private List<string> _xmlData = new List<string>(); 

void timer1_Tick(object sender, EventArgs e) 
{ 
    if(_xmlData.Count == 0) //Populate your list 
    { 
     _counter = 0; 
     XDocument xd = XDocument.Load(@"D:\satish1\na.xml"); 
     var query = from p in xd.Descendants("item") 
      select new 
      { 
       des = p.Element("description").Value 
      }; 
     foreach (var p in query) _xmlData.Add(p.des.ToString()); 
    } 
    if(_counter < _xmlData.Count) 
     title.Text = _xmlData[_counter]; 
    _counter++; 
    //If you require 
    if(_counter == _xmlData.Count) 
    { 
     timer.Stop(); //Stop the timer 
     _xmlData.Clear(); 
     _counter = 0; 
    } 
} 

希望這會有所幫助。

+0

你可以解釋我的一些代碼, – satish 2012-01-06 07:34:04

+0

優秀的工作,非常感謝你的幫助 – satish 2012-01-06 08:33:41

+0

如何將此標記爲答案 – satish 2012-01-06 08:36:20

相關問題