SAX Parser问题

时间:2010-07-20 11:01:29

标签: java saxparser

我有以下格式的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>

当我编写SAX解析器时,我从头到尾获取所有值,但是我需要编写一个条件,它将采用标记名称,例如Query / Quest,并仅获取其特定的名称和值。

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

注意:我正在用Java写作。

2 个答案:

答案 0 :(得分:2)

  • 在startElement中,根据给定名称检查元素名称。例如,如果您要查找“查询”并且名称为“查询”,请将某个标志设置为true。
  • 在startElement中,如果元素名称为“value”且标志为true,则将名称和值存储在地图中。
  • 在endElement中,如果元素名称等于“Query”,则将该标志设置为false。 (可选)完全停止解析。

答案 1 :(得分:0)

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

xpath库是jaxen,可以与我使用过的几个dom一起使用JDOM