Dom4j accept 学习笔记
不过多赘述直接上图先来一段测试代码 重点在注释
核心逻辑:
继承 VisitorSupport 重写 visit方法
将MyVisitor作为参数传递到 Element.accept中 下面是accept源码
源码分析
我觉得节点属性遍历比较简单我们直接看第二个Node遍历
该循环其实是一个递归调用,此处这个for循环换种写法就比较容易理解了 如下图
如下图 Element 是 Node的子类 可以进行类型转换
接下来debug验证下
通过上面两张图也就证实了该遍历采用递归的形式实现。
测试代码做了一点小改动 这是输出内容(考验下 看看能否找出改动了什么)
好久不写内容了有点生疏,文字描述可能比较少,主要是accept遍历的逻辑梳理,通过图片描述应该可以搞清楚。