我正在开发一个程序,在该程序中我将XML文件作为InputStream接收。我必须进行一些更改,然后将其作为OutputStream返回。
这是我的代码:
public void execute (InputStream xmlEntrada, OutputStream xmlSalida) {
SAXBuilder saxBuilder = new SAXBuilder();
Document document;
String idDocCobro, idCobro;
String sociedad, ejercicio, numDocCobro;
try {
document = saxBuilder.build(xmlEntrada);
Element raiz = document.getRootElement();
List piDocCobros = raiz.getChildren("Pagos");
for (int i = 0; i < piDocCobros.size(); i++) {
Element nodePiDocCobros = (Element) piDocCobros.get(i);
sociedad = nodePiDocCobros.getChildText("Sociedad");
ejercicio = nodePiDocCobros.getChildText("Ejercicio");
numDocCobro = nodePiDocCobros.getChildText("NumDocumentoCobro");
idDocCobro = sociedad + ejercicio + numDocCobro + System.currentTimeMillis();
nodePiDocCobros.getChild("iddoccobro").setText(idDocCobro);
List piCobros = nodePiDocCobros.getChildren("Pago");
for (int y = 0; y < piCobros.size(); y++) {
Element nodePiCobros = (Element) piCobros.get(y);
nodePiCobros.getChild("iddoccobro").setText(idDocCobro);
idCobro = numDocCobro + System.currentTimeMillis();
nodePiCobros.getChild("idcobro").setText(idCobro);
List piDocumentosRel = nodePiCobros.getChild("DocumentosRelacionados").getChildren("DocumentoRelacionado");
for (int z = 0; z < piDocumentosRel.size(); z++) {
Element nodePiDocumentosRel = (Element) piDocumentosRel.get(z);
nodePiDocumentosRel.getChild("idcobro").setText(idCobro);
}
}
}
我的问题是当我尝试读取函数中的XML时,copy因为流已经关闭,所以我得到了异常。当我saxBuilder.build在程序开始时使用句子时,流自身关闭。我之前无法将文本保存在byte[]变量中,因为我将在程序中对其进行修改。
任何想法?
12345678_0001
撒科打诨
相关分类