foreach (XElement element in enumerable)
            {
                userId = element.Element("userId").Value;
                username = element.Element("username").Value;
             }
这样就可以循环读取的,你这里的 userId和username都是一样的,循环就被覆盖了,估计是覆盖了,不是不能循环

解决方案 »

  1.   

    public class GetWebformXml
        {
           public static List<UserInfo> UserList=new List<UserInfo>(); //这个就是你要的了,得是一个集合
     
            public GetWebformXml()
            {
                IEnumerable<XElement> enumerable = XElement.Load("xml/userinfo.xml").Elements("item");
                foreach (XElement element in enumerable)
                {
                   string userId = element.Element("userId").Value;
                    string username = element.Element("username").Value;
    UserList.Add(new UserInfo(){Userid=userid,UserName=username});
                 }
             } //程序运行的时候默认只读取第一条,如何循环读取呢?
      }  //创建用户对像
      public class UserInfo
      {
        private  string userId = "";
            private  string userName = "";
            public string Userid
            {
                get
                {
                    return userId;
                }
                set
                {
                    userId = value;
                }
            }
     
            public string UserName
            {
                get
                {
                    return userName;
                }
                set
                {
                    userName = value;
                }
            }
      }
      

  2.   

    <?xml version="1.0"?>
    <channel>
      <item>
        <userId>8</userId>
        <username>飞虎</username>
      </item>
      <item>
        <userId>9</userId>
        <username>面容</username>
      </item>
      <item>
        <userId>10</userId>
        <username>丢丢虫</username>
      </item>
    </channel>
      

  3.   

    用你这个方式的话,在其他窗口得不到这个值。GetWebformXml getXml = new GetWebformXml();
      

  4.   

    为什么要new GetWebformXml(),List<UserInfo> UserList就是你想要的GetWebformXml。
      

  5.   


    这是一个类,我需要在其他窗口调用不就是userId,userName这两个值么?UserList.userId和UserList.userName。
      

  6.   

    修改后你的代码我测试过,是可以循环的,可是我想你这个循环有用么?通过
     GetWebformXml gw = new GetWebformXml();
    后只能获取得到最后一个值啊。
      

  7.   

    namespace TxtRead
    {
        public class GetWebformXml
        {
            public List<UserInfo> UserList = new List<UserInfo>(); //这个就是你要的了,得是一个集合        public GetWebformXml()
            {
                IEnumerable<XElement> enumerable = XElement.Load("xml/userinfo.xml").Elements("item");
                foreach (XElement element in enumerable)
                {
                    string userId = element.Element("userId").Value;
                    string userName = element.Element("username").Value;
                    UserList.Add(new UserInfo() { Userid = userId, UserName = userName });
                }
            }
        }    //创建用户对像
        public class UserInfo
        {
            private string userId = "";
            private string userName = "";
            public string Userid
            {
                get
                {
                    return userId;
                }
                set
                {
                    userId = value;
                }
            }        public string UserName
            {
                get
                {
                    return userName;
                }
                set
                {
                    userName = value;
                }
            }
        }
    }
    调用页面:
    private void GetWebform_Load(object sender, EventArgs e)
            {
                GetWebformXml userC = new GetWebformXml();            List<UserInfo> uList = userC.UserList;            StringBuilder sMsg = new StringBuilder();            foreach (UserInfo u in uList)
                {
                    sMsg.AppendLine(string.Format("用户ID:{0},用户名:{1}", u.Userid, u.UserName));
                }            MessageBox.Show(sMsg.ToString());
            }