Java SAX解析器的问题

Java SAX解析器的问题,java,saxparser,Java,Saxparser,我有一个以下格式的xml文件: <Query> <map> <value name="val1">1</value> <value name="val2">2</value> </map> </Query> <Quest> <map> <value name="val1">6</value>

我有一个以下格式的xml文件:

<Query>
   <map>
      <value name="val1">1</value>
      <value name="val2">2</value>
   </map>
</Query>
<Quest>
   <map>
      <value name="val1">6</value>
      <value name="val2">8</value>
   </map>
</Quest>

1.
2.
6.
8.
当我编写SAX解析器时,我会从头到尾获取所有的值,但我需要编写一个条件来获取标记名,比如Query/Quest,并且只获取它们特定的名称和值

我不确定如何添加这个条件,一旦满足了我的条件并解析了我的对象,我就不需要解析其余的标记

注意:我是用Java写的。

  • 在startElement中,对照给定名称检查元素名称。例如,如果您正在查找“Query”,并且名称为“Query”,请将某些标志设置为true
  • 在startElement中,如果元素名称为“value”,且标志为true,则将名称和值存储在映射中
  • 在endElement中,如果元素名称等于“Query”,则将标志设置为false。或者,完全停止解析

如果您只需要一组特定元素的数据,那么基于DOM的解析器(尤其是带有XPath的解析器)可能更容易获取所需字段


xpath库可以与我使用过的几个DOM一起使用

不幸的是,我只能使用Sax解析器,不能使用其他库!用萨克斯你不能。你阅读整个文件,直到你得到你需要的所有信息。