在使用 SAX 分析流后,将 XML 内容记录到文件中以进行审核



我正在使用SAX解析器通过InputStream读取XML内容。
我想在解析流后将 XML 内容记录到文件中以进行审计(同时和解析之前也可以)。

但是由于性能原因,我想将内容作为流阅读
我尝试克隆输入流和进程,但不起作用。任何线索将不胜感激。

法典:

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.DefaultHandler;

////////////////////////////////

SAXParserFactory parserFactor = SAXParserFactory.newInstance();
SAXParser parser = parserFactor.newSAXParser();
SAXHandler handler = new SAXHandler(); // SAXHandler extends DefaultHandler

XMLReader xmlReader = parser.getXMLReader();
xmlReader.setErrorHandler(new CustomErrorHandlerSax(System.err)); // CustomErrorHandlerSax implements ErrorHandler
xmlReader.setContentHandler(handler);

xmlReader.parse(new InputSource(responseStream)); // responseStream is an InputStream
// how to log the content that was on the responseStream?

您可以编写一个 SAXContentHandler,该复制每个事件,将其发送到两个不同的ContentHandler,一个是当前事件,另一个是将事件流序列化为StreamResult的 JAXPTransformerHandler

相关内容

  • 没有找到相关文章

最新更新