我正在使用以下简单的StAX代码来遍历XML中的所有标签。尺寸
input.xml> 100 MB

XMLInputFactory xif = XMLInputFactory.newInstance();
        FileInputStream in = new FileInputStream("input.xml");
        XMLStreamReader xsr = XMLInputFactory.newInstance().createXMLStreamReader(in);

        xsr.next();
        while (xsr.hasNext()) {

            xsr.next();
            if(xsr.isStartElement() || xsr.isEndElement())
                 System.out.println(xsr.getLocalName());
            }
        }

我收到此错误:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

请告诉我如何解决这个问题。我读到StAX很好地处理了巨大的XML,但是我遇到了与DOM分析器相同的错误。

最佳答案

在运行JVM时定义堆大小

-Xms    initial java heap size
-Xmx    maximum java heap size
-Xmn    the size of the heap for the young generation

例:
bin/java.exe -Xmn100M -Xms500M -Xmx500M

07-26 05:13