0

JavaでDocumentオブジェクトがあり、それを保存したいので、次のコードがあります。

TransformerFactory fabTransformador = TransformerFactory.newInstance();

Transformer transformador = fabTransformador.newTransformer();

Source origin = new DOMSource(documentoXML);

Result destino = new StreamResult(new java.io.File(nombrearchivo));

transformador.transform(origin, destino);

ここで、「nombrearchivo」はファイル名(file.xml)でdocumentoXMLあり、Documentオブジェクトです。コードを実行すると、出力として次のように表示されます。エラー:''例外は受信せず、メッセージERROR:''だけです。ドキュメントは約1.3GBですが、問題があるかどうかはわかりません。その場合、ファイルを保存する別の方法はありますか?

次のインポートを使用します。

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
4

2 に答える 2

1

コードは問題ないように見えますが、参考までに、DOMドキュメントを保存するために使用できる別のアプローチがあります。

import org.w3c.dom.ls.*;
import java.io.FileOutputStream;

DOMImplementationLS ls = (DOMImplementationLS)documentoXML.getImplementation();
LSSerializer ser = ls.createLSSerializer();
LSOutput out = ls.createLSOutput();
out.setEncoding("UTF-8");
FileOutputStream output = new FileOutputStream("output.xml");
try {
  out.setByteStream(output);
  ser.write(documentoXML, out);
} finally {
  output.close();
}
于 2013-02-19T12:33:47.260 に答える
0

正確な理由を判断するには、以下を使用してください。

try { 
 secure.generaTextoXML(); 
} catch (Trowable thr) { 
 thr.printStackTrace();
} 

...またはロガーLevel.ERRORの代わりに試してください:Level.SEVERE

try { 
 secure.generaTextoXML(); 
} catch (TransformerConfigurationException ex) {
 Logger.getLogger(GUI.class.getName()).log(Level.ERROR, null, ex); 
} catch (TransformerException ex) { 
 Logger.getLogger(GUI.class.getName()).log(Level.ERROR, null, ex); 
}
于 2013-02-19T13:13:54.153 に答える