xml 文件的不同读取方式

添加人:80frog零级(70分)   添加时间:2008-08-07    阅读次数:65  收藏此教程

xml文件如下结构所示:

要求:我想读取每一个row下面的key和第一个value的值;如何做呢?我的第一个办法:[后来自己想想,傻的很]
先把代码贴出来吧


                    public void operatedByXML(string PathXML)
        {
            string name = null;
            string keyword = null;
            string count = null;
            int countIndex = 0;
            XmlReader drr;
  XmlReader dr = XmlReader.Create(PathXML);
  while (dr.Read())
            {
                if (dr.NodeType == XmlNodeType.Element)
                {
                    if (dr.Name == "Row")
                    {                       
                        name = dr.Name;
                        drr = dr.ReadSubtree();
                        #region
                        while (drr.Read())
                        {
                            if (drr.NodeType == XmlNodeType.Element)
                            {
                                name = drr.Name;
                                if (drr.Name == "Key")
                                {
                                    keyword = drr.ReadString();
                                    countIndex = 0;
                                } if (drr.Name == "Value")
                                {
                                    if (countIndex == 0)
                                    {
                                        count = drr.ReadString();
                                        countIndex = 1;
                                    }
                                    else
                                    {
                                    }
                                }
                                else
                                {               }
                            }
                        }
                        #endregion
                    }
                 ikw.insertKeyWords(Convert.ToInt32(count), keyword);//这里做的是插入数据库的操作
                }
            }
        }
发现时间太慢了,然后才发现用xpath操作速度更快一些



string KeyWord = null, KeyPointCount = null;
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(PathXML);     
   //获取row节点个数
            int NodeCount= xmlDoc.SelectNodes("/AnalyticsReport/Report/Table/Row").Count;
            for (int i = 0; i < NodeCount; i++)
            {
                XmlNode xmlNode = xmlDoc.SelectNodes("/AnalyticsReport/Report/Table/Row").Item(i);
               KeyWord = xmlNode["Key"].InnerText;
               KeyPointCount = xmlNode["Cell"]["Content"]["Value"].InnerText;
               ikw.insertKeyWords(Convert.ToInt32(KeyPointCount),KeyWord);
            }
方法可能有多种,我只是简单的实现了我所要的
如有更好的能提高效率,欢迎指正

谢谢

 

1页 第1上一页1下一页
相关的教程: xmlreader xpath xmldocment
收藏此教程

当前平均分: 0.0(0 次打分)

-5-4-3-2-1012345
评论主题
您的大名
您的评论
验证码 点击换一个验证码
知识库搜索: