【第三篇日记】C#解析XML文档和excel文档(弄GoogleEarth时遇到的一个问题,作为一个初学者就大补XML的内容)

xml解析步骤:

第一:创建xmlDocument 对象,并实例化

xmlDocument xdc xdoc= new xmlDocument();

第二: xml文档路径,当前路径为工程项目下的 .\bin\debug

String StrFileName="test.xml";

第三: 读取xml(利用xmlReader读取)

xdoc.load(strFileName);

第四:输出xml文档

xdc.InnerXml

xml文档的结构:

Element——元素

Text——内容

EndElement——结束标记

Comment——注释

xmlDeclaration——声明

Document——根节点

DocumentType——文档类型声明

 

实例:

 static void Main(string[] args)
        {
            XmlDocument xdoc = new XmlDocument();
            string filename = "解析xml测试.xml";
            XmlTextReader xreader = new XmlTextReader(filename);
            xreader.WhitespaceHandling = WhitespaceHandling.None;//利用WhitespaceHandling.None 忽略解析出来空格

            while (xreader.Read())
            {
                for (int i = 0; i < xreader.Depth; i++)
                {
                    switch (xreader.NodeType)//判断节点类型
                    {
                        case XmlNodeType.Element://元素
                            Console.WriteLine("{0}", xreader.Value);
                            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://xml声明
                            Console.WriteLine("<?xml version='1.0'>");
                            break;
                        case XmlNodeType.Document://根节点
                            break;
                        case XmlNodeType.DocumentType://文档类型声明
                            Console.WriteLine("<!DOCTYPE{0}[{1}]>", xreader.Name, xreader.Value);
                            break;
                    }
                }
            }
            Console.ReadKey();
        }

注:以上方法只是简单的查询或者遍历xml文档,但是对需要精确查找数据就不容易操作。如果需要对文档进行全面的操作(增加、删除)需要根据xml文档(子)节点进行。

方法二:

static void Main(string[] args)
        {
            XmlDocument xdc = new XmlDocument();
            xdc.Load("解析xml测试.xml");
            XmlNodeList nodeList = xdc.SelectSingleNode("kml").ChildNodes;

            foreach (XmlNode item in nodeList)
            {
                XmlElement xe = (XmlElement)item;
                XmlNodeList xnf1 = xe.ChildNodes;
                foreach (XmlNode xn2 in xnf1)
                {
                        Console.WriteLine(xn2.InnerText+"\t");//显示子节点点文本                   
                }
            }
            Console.ReadKey();
        }

 

 

 

 

 ================================================================================================================

未完待续(因为个人学识有限,刚写一半就不知道怎么写了,希望对这方面比较熟悉的能给点参考,谢谢!)

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值