SAX 解析器出现问题

发布于 2024-09-10 14:15:37 字数 541 浏览 5 评论 0原文

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

I'm having an xml file in the below format:

<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>

When I write my SAX parser, I get all the values from start to end, but I need to write a condition what would take in a tag name, like Query / Quest and get only the name and value for their specific.

I'm not sure how to add this condition, I don't need to parse the rest of the tags once my condition is met and my object is parsed.

NOTE: I'm writing in Java.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

孤单情人 2024-09-17 14:15:37
  • 在 startElement 中,根据给定名称检查元素名称。例如,如果您正在查找“Query”并且名称为“Query”,请将某些标志设置为 true。
  • 在 startElement 中,如果元素名称为“value”且标志为 true,则将名称和值存储在映射中。
  • 在 endElement 中,如果元素名称等于“Query”,则将标志设置为 false。或者,完全停止解析。
  • In startElement, check the element name against the given name. For example, if you are looking for "Query" and the name is "Query", set some flag to true.
  • In startElement, if the element name is "value" and the flag is true, store the name and value in a map.
  • In endElement, if the element name equals "Query", set the flag to false. Optionally, stop parsing altogether.
烟花易冷人易散 2024-09-17 14:15:37

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

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

If you only want the data for a particular set of elements then a DOM based parser especially one with XPath to get the required fields might be easier.

An xpath library is jaxen which can be used with several doms I have used JDOM

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文