我的xml文件具有以下外观:
<Custommers>
<Custommer>
<name>foo</name>
<age>18</age>
<sexe>Male</sexe>
<Custommer>
<Custommer>
<name>foo1</name>
<age>25</age>
<sexe>Female</sexe>
<Custommer>
.
.
.
.
.
.
</Custommers>
这是一个巨大的XML文件(成千上万的客户),我需要解组然后将其放入数据库中,这是每月的工作。
我需要对其进行一些验证,然后如果定制器正确,则将其保存到数据库中,如果定制器的任何数据不正确,请记录错误并跳过此定制器。
我当时正在考虑将验证规则写入xsd,然后在使用 ValidationEventHandler 进行编组时忽略整个定制器。
有人知道我该怎么做吗?或其他解决方案?
我已经在网上搜索了几个小时,却找不到任何答案。
答案 0 :(得分:0)
变体1-XML方法
常见的XML处理方法是将验证和解析分开。验证步骤通常是针对XML模式进行的。
变体2-纯Java
还可以使用Jackson FasterXML之类的库来创建XML数据到Java类的相当宽松的映射。 Find here an example,了解如何仅读取列表中每个条目的某些属性。
变体3-有所不同
查找每个客户的字节偏移量,并将每个客户读取到准备充分的POJO。记录异常并继续下一个。 Find complete approach described here。