在java中编写XML规则解析器

时间:2016-12-08 12:19:27

标签: java xml xml-parsing jaxb

我有一个复杂的xml文件,它有多级元素。我必须解析XML文件并根据存在的元素,我必须处理传入的请求。我可以使用JAXB生成类并解析xml。但是要经历多级元素并与规则匹配会使程序过于复杂和沉重(导致4-5级循环)。是否有一种有效且轻松的方法来实现同样的目标?

1 个答案:

答案 0 :(得分:0)

根据您的存储需求 - 或者不是临时读取数据,您可以依赖这些解析器:

  • DOM(文档对象模型)解析器将XML数据存储到内存结构中。
  • jDOM(Java DOM)解析器是Java中类似DOM的实现,具有自己的API。
  • SAX(Simple API for XML)解析器完全异步遍历XML流,为每个读取数据抛出用户事件。
  • StAX(Streaming API for XML)解析器同步读取XML流。

所有这些都可以在任何标准运行时(JRE)中找到,除了jDOM,它是开源的。

因此,如果您正在寻找一种有效的方法来处理XML并根据读取的数据进行分解,那么StAX可能会满足您的需求,因为只要您获得所需的数据,就可能会停止阅读并丢弃其余的输入XML。

更新

要在整个文档中应用匹配规则,我建议您使用XPath over DOM。