1

我有一个以下格式的 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 编写。

4

2 回答 2

2
  • 在 startElement 中,根据给定名称检查元素名称。例如,如果您正在查找“Query”并且名称为“Query”,请将某些标志设置为 true。
  • 在 startElement 中,如果元素名称为“value”且标志为 true,则将名称和值存储在映射中。
  • 在 endElement 中,如果元素名称等于“Query”,则将该标志设置为 false。(可选)完全停止解析。
于 2010-07-20T11:06:25.740 回答
0

如果您只想要一组特定元素的数据,那么基于 DOM 的解析器,尤其是使用 XPath 来获取所需字段的解析器可能会更容易。

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

于 2010-07-20T11:28:50.990 回答