Java 如何通过同时检查父标记和子标记来使用sax解析xml?

Java 如何通过同时检查父标记和子标记来使用sax解析xml?,java,sax,Java,Sax,嗨 我想使用sax解析器解析xml文档。我想做的是检查外部和内部标记(例如:我在其他标记中也有相同的标记。例如。)因此我想基于外部标记获取数据,即在我们的例子中仅从标记或标记1获取数据。你能帮我做这个吗?我可以在java中使用sax检查父标记和子标记吗????请帮帮我 谢谢。我认为一种方法是,如果外部标记不同,那么当你得到外部标记时,可以设置一些变量值,然后当涉及到内部标记时,可以检查变量设置为哪个值,并知道父标记。 为了 Ex: 所以,在处理程序的startElement()中,您可以检查n

嗨 我想使用sax解析器解析xml文档。我想做的是检查外部和内部标记(例如:我在其他标记中也有相同的标记。例如。)因此我想基于外部标记获取数据,即在我们的例子中仅从标记或标记1获取数据。你能帮我做这个吗?我可以在java中使用sax检查父标记和子标记吗????请帮帮我


谢谢。

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

Ex:

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

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

Ex:

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

编写一个ContentHandler,它使用堆栈保存嵌套元素的数据。在StartElement开始时执行Stack.push,在EndElement结束时执行Stack.pop。使用仅包含元素名称的堆栈,或使用包含您自己的元素类的堆栈来保存更多数据


您还可以编写一个通用抽象ContentHandler,用于保存堆栈,并提供其子体方法以获取当前元素及其路径的各种信息。

编写一个ContentHandler,它使用堆栈保存嵌套元素的数据。在StartElement开始时执行Stack.push,在EndElement结束时执行Stack.pop。使用仅包含元素名称的堆栈,或使用包含您自己的元素类的堆栈来保存更多数据


您还可以编写一个通用的抽象ContentHandler,用于保存堆栈并提供其后代方法,以获取当前元素及其路径的各种信息。

我不是100%确定,但我相信SAX是事件驱动的,不会将整个XML树保存在内存中。我认为您必须使用DOM来实现这一点。您应该能够使用SAX解析器来构建DOM树。我不是100%确定,但我相信SAX是事件驱动的,不会将整个XML树保存在内存中。我认为您必须使用DOM来实现这一点。您应该能够使用SAX解析器构建DOM树。
Ex: 
<x>
 <y/>
</x>
<z>
 <y/>
</z>