XPathParser源码
2017-03-08 本文已影响0人
ywy_java
成员变量:

这些都是java-api里的类,具体属性是做什么的,等用到再看,先知道有这些即可。
构造函数:

看到这个会发现,构造函数做了两件事:
1、调用commonConstructor()函数。
2、构造document对象赋值给成员变量。
成员方法:
那就先看第一个方法:commonConstructor

做了两件事:1、使用外部传入的参数,初始化成员变量;2、构造XPathFactory对象,获得Xpath的对象。
第二个方法:createDocument


这里就看到几个成员变量的用途了:
1、validation用于设置解析xml时是否对它进行校验。
2、设置builder的entityResolver属性。
最终调用了DocumentBuilder的parse方法对传入的文件流进行解析,返回Document对象。
另外还有几个解析流获取对应值的方法。我们就看一个获取String类型的。

这里发现,最重要的获取值的方法其实是evalute方法。

这个类经历了这么几个过程,通过documentBuilder构建document,以及通过xpathFactory构建xpath。这两步都是在构造方法里完成的,剩下就是对document进行解析获取值了。