如何在解析复杂的XML文件时防止样板Java代码?

时间:2010-02-13 21:31:39

标签: java xml-parsing boilerplate

我为一个复杂的XML文件编写了一个带有DocumentBuilderFactory的XML解析器。因为有许多不同的节点类型,所以有许多样板代码。对于每个节点类型(NodeName),我在子节点上有一个循环,并为可能的子元素设置了一个开关。

是否只能为不同的节点类型注册所需的代码,然后运行解析?

3 个答案:

答案 0 :(得分:2)

有几种方法:

  • Refactor将重复的代码转换为可重复使用的方法。
  • 利用XPath直接选择特定节点。
  • 使用工具将XML转换为值得信赖的Javabean,例如: XMLBeans

答案 1 :(得分:1)

Java DOM解析API确实有点样板。还有一些其他库:

答案 2 :(得分:0)

编写自定义解析器可能不是最佳选择。 如果您只需要将XML映射到Java对象,则最好使用预先存在的库或工具。让别人担心样板。

我是Apache Digester的忠实粉丝,它采用了一系列规则并为您提供了Java bean。对于更多的学习曲线,但更多的灵活性和强大功能,您可以使用Apache XMLBeans。