public void DocumentRead()
        {
            XmlDocument xdoc = new XmlDocument();
         //   string strFileName = System.IO.Directory.GetCurrentDirectory() + "\\test.xml";
            string strFileName =  ".\\test.xml";
            xdoc.Load(strFileName);
            Console.WriteLine(xdoc.InnerXml);
            Console.Read();
        }

        public void XmlReader(string strFileName)
        {
            //string strFileaName = ".\\test.xml";
            XmlTextReader xreader = new XmlTextReader(strFileName);
            xreader.WhitespaceHandling = WhitespaceHandling.None;
            while (xreader.Read())
            {
                for (int i = 0; i < xreader.Depth; i++)
                    Console.Write("\t");
                switch (xreader.NodeType)
                {
                    case XmlNodeType.Element:   // 元素
                        Console.WriteLine("<{0}>",xreader.Name);
                        break;
                    case XmlNodeType.Text: //文本
                        Console.WriteLine("{0}",xreader.Value);
                        break;
                    case XmlNodeType.EndElement:
                        Console.WriteLine("</{0}>",xreader.Name);
                        break;
                    case XmlNodeType.Comment:    //注释
                        Console.WriteLine("<!--{0}-->",xreader.Value);
                        break;
                    case XmlNodeType.XmlDeclaration: //声名
                        Console.WriteLine("<?xml version='1.0'?>");
                        break;
                    case XmlNodeType.Document:  //根节点
                        break;
                    case XmlNodeType.DocumentType: //文档类型声名
                        Console.WriteLine("<!DOCTYPE {0} [{1}]>",xreader.Name,xreader.Value);
                        break;
                }

            }
            if (xreader != null)
                xreader.Close();
            Console.Read();
        }

枚举值    节点类型   示例

Attribute   属性   id='123'

Coument    注释   <!--my comment-->

Document   文档数的根节点  <document>

DocumentType 文档类型声名  <!DOCTYPE....>

Element   元素  <姓名>

Text  节点的文本内容   张三

EndElement 元素结束标记  </姓名>

Entity 实体声名 <!ENTITY...>

EntityReference 对实体的引用   &num;

Notation 文档类型声名中的表示法 <!NOTION..>

ProcessingInstruction  处理指令 <?pi test?>

Whitespace    标记间空白 

XmlDeclaration  XML声名  <?xml version ='1.0'?>

 

 

        /// <summary>
        /// use xmlnode read node
        /// </summary>
        /// <param name="strFileName"></param>

        public void xmlNodereader(string strFileName)
        {
            XmlDocument xdoc = new XmlDocument();
            xdoc.Load(strFileName);

            XmlNode xnode = xdoc.DocumentElement.FirstChild;
            Console.WriteLine("node name\t\t:{0}", xnode.Name);
            Console.WriteLine("node type\t: {0}", xnode.NodeType);
            //Console.WriteLine("属性值\t\t: {0}", xnode.Attributes[0].Value);
            Console.WriteLine("node value\t: {0}", xnode.Value);
            Console.WriteLine("base address\t:{0}", xnode.BaseURI);
            Console.WriteLine("if have child \t: {0}", xnode.HasChildNodes);
            Console.WriteLine("Childnode value\t: {0}",xnode.InnerText);
            Console.WriteLine("Childnode XML\t:{0}", xnode.InnerXml);
            Console.WriteLine("self and child XML\t: {0}", xnode.OuterXml);
            Console.WriteLine("XML document\t:{0}", xnode.OwnerDocument.Name);
            Console.WriteLine("parentnode \t\t: {0}", xnode.ParentNode.Name);
            Console.Read();
        }

posted on 2009-02-20 14:36  wn323225  阅读(166)  评论(0)    收藏  举报