我有一个1GB的Xml文件,如何使用Java将其拆分为格式正确的小型Xml文件?
这是一个例子:
<records>
<record id="001">
<name>john</name>
</record>
....
</records>
Run Code Online (Sandbox Code Playgroud)
谢谢.
我有一个35 GB的XML文件(是的,一些组织这样做,我无法控制它),我想SAX解析.我在这里找到了一个例子:
http://www.java2s.com/Code/Java/XML/SAXDemo.htm
如何运行SAX解析器并避免加载所有内容.但是,我立刻得到了一个内存不足的错误.为什么会发生这种情况以及如何使此代码完全可扩展到任何XML文件大小?
这是我的代码:
import org.apache.log4j.Logger;
import org.xml.sax.AttributeList;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParserFactory;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class XMLSAXTools extends org.xml.sax.helpers.DefaultHandler {
/**
* Logging facility
*/
static Logger logger = Logger.getLogger(XMLSAXTools.class);
private String fileName = "C:/Data/hugefile.xml";
private int counter = 0;
/** The main method sets things up for parsing */
public void test() throws IOException, SAXException,
ParserConfigurationException {
// Create a JAXP "parser factory" for creating SAX parsers
javax.xml.parsers.SAXParserFactory …Run Code Online (Sandbox Code Playgroud)