XPath的使用

时间:2023-06-12 10:02:26

最近在mybatis的时候,发现源码中出现了这样的一句代码

  private void configurationElement(XNode context) {
try {
String namespace = context.getStringAttribute("namespace");
if (namespace == null || namespace.equals("")) {
throw new BuilderException("Mapper's namespace cannot be empty");
}
builderAssistant.setCurrentNamespace(namespace);
cacheRefElement(context.evalNode("cache-ref"));
cacheElement(context.evalNode("cache"));
parameterMapElement(context.evalNodes("/mapper/parameterMap"));
resultMapElements(context.evalNodes("/mapper/resultMap"));
sqlElement(context.evalNodes("/mapper/sql"));
buildStatementFromContext(context.evalNodes("select|insert|update|delete"));
} catch (Exception e) {
throw new BuilderException("Error parsing Mapper XML. Cause: " + e, e);
}
}

说实话,我一开始这不知道这是什么写法,毕竟我以前虽然学过xml解析,但是没有学过这种类型,后来直接查找根的时候,才知道这个是XPath的语法,网上看了一下简介,大概知道了这个并不属于JAVA的内容,XPath是一种搜索xml的语法,而JAVA提供了他自己的版本供开发人使用。

下面两篇文章大概就能够知道怎么使用这个东西了:

http://www.ibm.com/developerworks/cn/xml/x-javaxpathapi.html

http://www.runoob.com/xpath/xpath-syntax.html