我得到了一个包含大约 10000 多行数据的大型 SOAP 响应,并且正在从 CDATA 中提取相关数据并插入到数据库中。
代码如下所示:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setCoalescing(true);
DocumentBuilder db = dbf.newDocumentBuilder();
InputStream is = new ByteArrayInputStream(resp.getBytes());
Document doc = db.parse(is);
XPathFactory xPathfactory = XPathFactory.newInstance();
XPath xpath = xPathfactory.newXPath();
XPathExpression expr = xpath.compile(fetchResult);
String result = (String) expr.evaluate(doc, XPathConstants.STRING);
resp 包含 SOAP 响应 fetchResult 是
String fetchResult = "//result/text()";
我在最后一行收到 OutofMemory 错误。我确实尝试将堆大小增加到 1.2 GB,但这也没有用。
你们中的任何人都可以帮我吗?