我用 DocumentBuilderFactory 为一个复杂的 XML 文件编写了一个 XML 解析器。因为有许多不同的节点类型,所以有许多样板代码。对于每个节点类型 (NodeName),我都有一个子元素循环和一个可能的子元素的开关。
是否只能为不同的节点类型注册所需的代码然后运行解析?
我用 DocumentBuilderFactory 为一个复杂的 XML 文件编写了一个 XML 解析器。因为有许多不同的节点类型,所以有许多样板代码。对于每个节点类型 (NodeName),我都有一个子元素循环和一个可能的子元素的开关。
是否只能为不同的节点类型注册所需的代码然后运行解析?
几种方式:
Java DOM 解析 API 确实有点样板。还有一些其他的库:
编写自定义解析器可能不是要走的路。如果您只需要将 XML 映射到 Java 对象,那么最好使用预先存在的库或工具。让其他人担心样板。
我是 Apache Digester 的忠实粉丝,它采用大量规则并为您构建 Java bean。如果需要更多的学习曲线但更灵活和更强大,您可以使用 Apache XMLBeans。