如何通过一次检查父标签和子标签来使用sax解析xml?

时间:2011-04-28 07:00:19

标签: java sax

您好 我想使用sax解析器解析xml doc。我想要做的是检查外部和内部标签(例如:我在其他标签中也有相同的标签。比如。)所以我想基于外部标签获取数据,即在我们的案例中仅来自tag或tag1。你可以帮帮我吗?我可以在java中使用sax检查父标签和子标签吗?请帮帮我。

谢谢..

2 个答案:

答案 0 :(得分:4)

编写一个ContentHandler,它利用Stack来保存嵌套元素的数据。在StartElement的开头做Stack.push并在EndElement的末尾做Stack.pop。使用仅包含元素名称的Stack或使用您自己的Element类的Stack来保存更多数据。

您也可以编写一个包含Stack的通用抽象ContentHandler,并提供其后代方法,以获取当前元素及其路径的各种信息。

答案 1 :(得分:0)

我认为你可以做的一种方法是,如果外部标签不同,那么当你获得外部标签时可以设置一些变量值,那么当涉及到内部标签时,可以检查该变量设置为哪个值并且知道父项标签。 为了

Ex: 
<x>
 <y/>
</x>
<z>
 <y/>
</z>

所以在处理程序的startElement()中你可以检查name == x,将变量值设置为x(否则为z)。当你得到y时,检查变量设置为(x / z)。