其实dom4j并不是严格意义上的xml解析器,其底层也是采用符合jaxp规范的具体实现,并且dom4j的文档中表明,可以和jaxp协同工作,采用jaxp已经config好的解析器和转换器。dom4j中的xpath的功能强大,他可以精确的得到我们想要的节点,其中selectNodes这个方法中的匹配功能与正则表达式不相上下,详情可参考XPathTutorial文档。他返回的是一个封装成list的document对象,我们就可以拿这个对象进行增删改。
刚刚使用xpath的时候可能会报一个错误:
Exception in thread"main"java.lang.NoClassDefFoundError:org/jaxen/JaxenException
这时我们应该往CLASSPATH导入一个jar包,叫jaxen,这个包可以在dom4j目录下的lib库中找到。
此外老师还讲了一道面试题,从键盘接收一个数字,在控制台输出一个m字形的图形。如:输入数字3,则打印出
3 7
2 4 6 8
1 5 9
一般这种类型的题目都归结为平面图形题,用二维数组来解决。
首先画图分析:
我们看到,其实变化的就是x轴,都是2.1.0.1.2.1.....
具体实现代码: