我想将大的XML分成小块。我正在使用VTDGen将xml文件拆分为小块,并且对于文件大小为< 2 GB的文件很有效。 VTD-xml使用IN-Memory解析xml,我不想将xml加载到内存中。所以我试图用VTDGenHuge来映射内存。如何使用VTDGenHuge将大型xml分成小块?
代码工作正常VTDGen但是当我我们VTDGenHuge它不能正常工作。我得到NUll值在“byte [] xml = vn.getXML()。getBytes();”); 当你做syso vn.getXML()你得到对象值。但与“getBytes()”返回null.I不,不,为什么。但是,如果你做“byteAt(x)”x =任何长的值它返回值。
我的XML文件是:
<?xml version="1.0" encoding="UTF-8"?>
<Employees>
<Employee id="1">
<age>29</age>
<name>Pankaj</name>
<gender>Male</gender>
<role>Java Developer</role>
</Employee>
<Employee id="2">
<age>35</age>
<name>Lisa</name>
<gender>Female</gender>
<role>CEO</role>
</Employee>
<Employee id="3">
<age>40</age>
<name>Tom</name>
<gender>Male</gender>
<role>Manager</role>
</Employee>
<Employee id="1">
<age>29</age>
<name>Pankaj</name>
<gender>Male</gender>
<role>Java Developer</role>
</Employee>
<Employee id="2">
<age>35</age>
<name>Lisa</name>
<gender>Female</gender>
<role>CEO</role>
</Employee>
<Employee id="3">
<age>40</age>
<name>Tom</name>
<gender>Male</gender>
<role>Manager</role>
</Employee>
<Employees>
我想出来把这样的。
<?xml version="1.0" encoding="UTF-8"?>
<Employees>
<Employee id="1">
<age>29</age>
<name>Pankaj</name>
<gender>Male</gender>
<role>Java Developer</role>
</Employee>
<Employee id="2">
<age>35</age>
<name>Lisa</name>
<gender>Female</gender>
<role>CEO</role>
</Employee>
<Employee id="3">
<age>40</age>
<name>Tom</name>
<gender>Male</gender>
<role>Manager</role>
</Employee>
<Employees>
<?xml version="1.0" encoding="UTF-8"?>
<Employees>
<Employee id="1">
<age>29</age>
<name>Pankaj</name>
<gender>Male</gender>
<role>Java Developer</role>
</Employee>
<Employee id="2">
<age>35</age>
<name>Lisa</name>
<gender>Female</gender>
<role>CEO</role>
</Employee>
<Employee id="3">
<age>40</age>
<name>Tom</name>
<gender>Male</gender>
<role>Manager</role>
</Employee>
<Employees>
你的代码看起来像C#。您需要使用XMLReader。你可以在网上搜索c#xml巨大的。试试这个:http://stackoverflow.com/questions/15772031/how-to-parse-very-huge-xml-files-in-c – jdweng
@jdweng不,它不是C#是Java代码。 – Naveen
看起来不像JAVA,它是c#。 – jdweng