如何正确循环遍历Xml文件并在TextBox中显示值?

时间:2012-01-06 06:02:38

标签: xml winforms

我想循环遍历xml文件并在文本框中显示值,但我的文本框一次只显示一个值。在调试模式下,我能够看到所有值。这是我的代码。

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秒。

1 个答案:

答案 0 :(得分: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;
    }
}

希望这有帮助。