我有一个10+ MB的xml文件,包含有关系的节点(大约10K到20K)。
<.....>
<Emplyoyee>
<name>Jack</name>
<age>35</age>
<supervisor></supervisor>
<....>
</Emplyoyee>
<.....>
<.....>
<.....>
<Emplyoyee>
<name>Smith</name>
<age>20</age>
<supervisor>Jack</supervisor>
<....>
</Emplyoyee>
<.....>
现在,我想解析这个文件并将所有细节存储在DB中,其中“Employee”表有一个名为“supervisorID”的字段(ID)。到目前为止,我已经尝试制作所有员工的列表,然后迭代列表以查找主管关系。
请建议我使用内存高效且快捷的方法。我可以使用哪些库来处理这类问题。
答案 0 :(得分:1)
您可以使用XML
将数据从JAXB
文件转换为Java对象,并使用Hibernate
+ JPA
将Java对象插入数据库。
您可以创建2个DTO
Emplyoyee
- 包含有关Emplyoyee的所有信息(姓名,年龄,......)
和
Emplyoyees
List<Emplyoyee>
用于JAXB解组
编辑:没有JAXB和JPA
您可以使用 javascript 解析文件,并发送 SQL 查询 Ajax
var xmlDoc = new ActiveXObject("MSXML.DOMDocument");
xmlDoc.async = false;
xmlDoc.preserveWhiteSpace = true;
xmlDoc.load(pathToFile);
var nodes = xmlDoc.selectNodes("/Emplyoyee");
for (var node = nodes.nextNode(); node != null; node = nodes.nextNode())
{
// get another nodes, create SQL query and sent it to server usinj Ajax
}
答案 1 :(得分:1)
查看 EclipseLink 提供的MOXy框架。它实际上在后台使用 JAXB 实现。但是ORM的内容也是 JPA 。