csharp XmlTextReader read xml file

来源:互联网 发布:111什么意思网络用语 编辑:程序博客网 时间:2024/05/16 15:31

 xml file:

<?xml version="1.0" encoding="utf-8"?><Root>  <UserInfo>    <Login Name="geovindu">      <Pass>l17pi6MYm2g=</Pass>    </Login>    <Login Name="涂聚文祝你龙年大悦!http://www.dusystem.com/Happynewyear.html">      <Pass>4IGT6o/qA4vKYzlgizWsDg==</Pass>    </Login>    <Login Name="涂聚文">      <Pass>ULNR7dw9V7M=</Pass>    </Login>  </UserInfo></Root>


 

            int ws = 0;            int pi = 0;            int dc = 0;            int cc = 0;            int ac = 0;            int et = 0;            int el = 0;            int xd = 0;            XmlDocument xmlConditions = new XmlDocument();                        string url = Server.MapPath("User.xml");            XmlTextReader textReader = new XmlTextReader(url);            //textReader.WhitespaceHandling = WhitespaceHandling.None;            //xmlConditions.Load(textReader);            //XmlNode xnodDE = xmlConditions.DocumentElement;            //Response.Write(xnodDE.ChildNodes[0].ToString());           // string t=ChildDisplay(xnodDE, 0);            //Response.Write(t);            //textReader.Close();            string sName = "";            while (textReader.Read())            {                XmlNodeType nType = textReader.NodeType;                // If node type us a declaration                if (nType == XmlNodeType.XmlDeclaration)                {                    Response.Write("Declaration:" + textReader.Name.ToString() + "<br/>");                    xd = xd + 1;                }                // if node type is a comment                if (nType == XmlNodeType.Comment)                {                    Response.Write("Comment:" + textReader.Name.ToString() + "<br/>");                    cc = cc + 1;                }                // if node type us an attribute                if (nType == XmlNodeType.Attribute)                {                    Response.Write("Attribute:" + textReader.Name.ToString() + "<br/");                    ac = ac + 1;                }                // if node type is an element                if (nType == XmlNodeType.Element)                {                    Response.Write("Element:" + textReader.Name.ToString() + "<br/>");                    el = el + 1;                }                // if node type is an entity\                if (nType == XmlNodeType.Entity)                {                    Response.Write("Entity:" + textReader.Name.ToString() + "<br/>");                    et = et + 1;                }                // if node type is a Process Instruction                if (nType == XmlNodeType.Entity)                {                    Response.Write("Entity:" + textReader.Name.ToString() + "<br/>");                    pi = pi + 1;                }                // if node type a document                if (nType == XmlNodeType.DocumentType)                {                    Response.Write("Document:" + textReader.Name.ToString() + "<br/>");                    dc = dc + 1;                }                // if node type is white space                if (nType == XmlNodeType.Whitespace)                {                    Response.Write("WhiteSpace:" + textReader.Name.ToString() + "<br/>");                    //Response.Write("name:" + xmlConditions.Attributes["Name"].ToString());                    //Response.Write("login:" + xmlConditions.GetElementsByTagName("Login").ToString());                    ws = ws + 1;                }                switch (textReader.NodeType)                {                    case XmlNodeType.Element:                        sName = textReader.Name;                        Response.Write("读取:Element:" + sName + "<br/>");                        if (textReader.HasAttributes)                        {                            for (int i = 0; i <= textReader.AttributeCount - 1; i++)                                Response.Write("屬性: " + textReader.GetAttribute(i) + " <br/>");                            Response.Write("屬性Name: " + textReader.GetAttribute("Name") + " <br/>");                        }                        if (sName == "Login")                        {                            Response.Write("IF屬性Name: " + textReader.GetAttribute("Name") + " <br/>");                        }                        break;                    case XmlNodeType.Text:                        switch (sName)                        {                            case "Login":                                Response.Write("Login:"+textReader.Value+"<br/>");                                if (textReader.HasAttributes)                                {                                    for (int i = 0; i <= textReader.AttributeCount - 1; i++)                                        Response.Write("屬性: " + textReader.GetAttribute(i) + " <br/>");                                }                                break;                            case "Pass":                                Response.Write("Pass:" + textReader.Value + "<br/>");                                break;                            case "UserInfo":                                Response.Write("UserInfo:" + textReader.Value + "<br/>");                                break;                        }                        break;                }                           }            Response.Write("Total Comments:" + cc.ToString());            Response.Write("Total Attributes:" + ac.ToString());            Response.Write("Total Elements:" + el.ToString());            Response.Write("Total Entity:" + et.ToString());            Response.Write("Total Process Instructions:" + pi.ToString());            Response.Write("Total Declaration:" + xd.ToString());            Response.Write("Total DocumentType:" + dc.ToString());            Response.Write("Total WhiteSpaces:" + ws.ToString());