如何使用SAX在树中显示具有最大深度的节点名称。 算法对我理解这个概念很好。
例如,我应该如何处理startelement,endelement,startdocument,enddocument方法以及执行任务需要哪些变量?
谢谢!
答案 0 :(得分:1)
这更像是一个算法问题。要解决这个问题需要注意的是,每次你有一个startelement事件,你已经进入了一个级别,当你有一个adlement事件时,你已经升级了一个级别。我们的想法是拥有一个变量(级别),并且每个startelement都会增加它(级别++),并且每次尝试都会减少它(level--)。这意味着当找到节点的功能时,级别变量的值将是节点的深度。那么你唯一要做的就是跟踪最大值。伪代码版本将是这样的:
startdocument -> level=0;max=0;
startelement -> level++
endelement -> if (level>max) max=level; level--;
endocument -> System.out.println(max)
希望它有所帮助。