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