我想將大的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