SAX在最大深度处查找节点

时间:2012-05-15 10:56:59

标签: java xml sax

如何使用SAX在树中显示具有最大深度的节点名称。 算法对我理解这个概念很好。

例如,我应该如何处理startelement,endelement,startdocument,enddocument方法以及执行任务需要哪些变量?

谢谢!

1 个答案:

答案 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)

希望它有所帮助。

相关问题