一直以来,在检索XML文件的时候,频频使用"//XXX"来查找节点,用法简单,一目了然....用得我不亦乐乎.....也没有仔细去想过这样做会出现什么问题.今日,分析一个比较复杂的XML文件,在分析中用到了循环,在循环中使用了doc.SelectNodes("//XXX");结果发现速度出奇的慢,分析一个4M左右的XML需要21秒.刚开始怀疑算法问题,花了一上午的时间优化算法,速度也就提高了3秒左右.下午冥思苦想,双眼喷火似的四处扫描代码,总算发现SelectNodes("//XXX")极其不顺眼.....于是注释...运行....时间剧减....OH.YES,就是他了..."//XXX"会遍历整个XML结构树.....这个XML又如此之大,一循环起来不慢才怪....
问题解决了,仔细想想,平时老遇到这种事,就是没有好好细心去多想想,去发掘本质,致使漏掉好多东西,从而产生好多问题....以后啊~~细小问题也不能放过啊...兄弟,你是程序员啊~~~

转载于:https://www.cnblogs.com/DotNetFresh/archive/2005/03/03/112302.html

不要忽视任何小问题!!!一个XML的XPath的问题.....相关推荐

  1. mybatis-generator 产生出来的一个 小毛驴(xml) 文件

    mybatis-generator 产生出来的一个 xml 文件 <?xml version="1.0" encoding="UTF-8"?> &l ...

  2. 定义一个xml文件,保存班级信息

    xml文件的功能:用来传输和存储数据 案例: 编写一个xml文件,用来存储班级的信息,包括学生(姓名,年龄,城市,手机号).老师(姓名,课程).账号信息(账号.密码) 说明: 做文档声明,声明文档类型 ...

  3. java拖动组件,[小娱乐] 一个能拖动组件、改变组件大小的容器

    [小娱乐] 一个能拖动组件.改变组件大小的容器 /* * JDragpullPane.java * * Created on 2007年3月20日, 上午12:31 */ package javax. ...

  4. 关于在Android中一个XML文件包含另外一个XML的方法

    在Android界面设计中,有时候需要一个XML主界面需要包含很多的子界面,如果写在同一个XML文件,该文件结构过于复杂,难以维护,因此可以考虑把各个子界面写成独立的XML文件,然后包含到主界面xml ...

  5. ssas 为绑定指定的大小太小,导致一个或多个列值被截断

    错误信息:ssas 为绑定指定的大小太小,导致一个或多个列值被截断 如果更改了某个维度或是事实表的字段长度,在处理CUBE时提示此错误,我们要做以下更新: 1.刷新数据源视图. 2.打开多维数据集,查 ...

  6. Android向本地写入一个XML文件和解析XML文件

    在网络存储过程中有很多时候会遇到XML文件解析和使用XML保存一些信息,解析XML文件用的比较多的方法是pull解析和SAX解析,但是我一般只用pull解析,下面就向cd卡写入一个XML文件,然后再使 ...

  7. android http通过post请求发送一个xml

    今天,简单讲讲android如何在网络请求时通过post方式发送xml数据. 其实也很简单,不过我之前对网络请求这一块不太熟悉,当需要做这个发送xml数据时,居然不知道怎么做.后来,在网上查找资料,最 ...

  8. w3c dom操作Xml时从加入另一个XML文件的一个元素

    同时读取两个XML文件,如果需要把一个XML 文件中的某个特定元素的内容插入到另外一个XML文件中时,要用importNode()方法,具体使用例子如下: import java.io.ByteArr ...

  9. java 读取sql xml文件是否存在_java.oracle問題,如下,我看到一个XML文件有一个SQL。...

    一个XML文档,可以先构造一个DOM,然后将DOM转化为xml序列,输出或者生成文件.package test; import java.io.ByteArrayOutputStream; impor ...

最新文章

  1. JAVA源码优化、分析工具
  2. windows下学习linux,在Windows环境下学习Linux命令行的几种方法
  3. XgCalendar 代码导读和Demo详解(1)参数说明和数据结构
  4. 51 NOD 1238 最小公倍数之和 V3
  5. pyflink shell的remote模式下的实验记录
  6. qt如何把dll封装到exe中_QT在VS2013中的配置
  7. socket、listen 等函数的打电话隐喻
  8. 吴恩达神经网络和深度学习-学习笔记-35-残差网络(Residual Network)
  9. python绘制玫瑰花代码视频_python turtle玫瑰花绘制效果和源代码
  10. Java多线程编程那些事:volatile解惑
  11. 自定义线程池-c#的简单实现
  12. x61 linux 驱动 无线网卡,联想X61无线网卡适配器驱动
  13. switchHost工具的使用
  14. 常见的激励函数和损失函数
  15. 计算机中英文标点符号对照表,常用中文标点符号和键盘对照表.doc
  16. 作为一枚程序员,每天必用的软件有哪些?
  17. 利用sqlmap注入获取网址管理员账号密码
  18. Android Tools 在线更新SDK Manager
  19. python 简单操作dbpedia
  20. 学大伟业Day1解题报告

热门文章

  1. Eureka集群搭建
  2. mysql extract month_MySQL日期时间 Extract(选取)函数
  3. python保存数据_Python 保存数据的方法(4种方法)
  4. just函数python_提升 Python 性能 Numba 与 Cython
  5. c语言地图导航代码大全,C语言实训—电子地图导航系统源代码.docx
  6. 测试硬盘读写速度软件_Linux测试硬盘读写速度用什么命令
  7. 八、探索性数据分析——数字化探索
  8. 我常用的10个Python实用小Trick
  9. python的learn_Python_learn_1day
  10. binlogignoredb mysql_mysql 主从复制binlog不同步