0
我正在通過API運行查詢,並且通過InputStream收到了比我通常預期更大的一組XML。這導致我在嘗試將XML解析爲字符串時遇到堆空間錯誤。這裏是我當前如何解析輸入流:在大型輸入流中解析xml時遇到問題
public String parseXml(InputStream inputStream) throws IOException {
String myString;
List<String> matchingXmlList = new ArrayList<>();
byte[] byteArray = toByteArray(inputStream);
String tempString = new String(byteArray, StandardCharsets.UTF_8);
return tempString;
}
在正常情況下,這是輸出:
<?xml version="1.0" encoding="UTF-8">
<queryResult>
<records />
<records />
<records />
<records />
</queryResult>
接收這樣的輸出後,然後我用一個匹配器解析每一個人記錄節點並將其添加到字符串列表中。但是,當InputStream太大時,我會在嘗試將InputStream放入String時遇到內存問題。
有沒有辦法解析InputStream而不會遇到內存問題?我需要能夠將每個單獨的記錄元素解析爲一個XML字符串。