提问人:ironwood 提问时间:5/31/2022 最后编辑:Nikos Paraskevopoulosironwood 更新时间:5/31/2022 访问量:88
使用 SAX 解析流后,将 XML 内容记录到文件中以供审核
Log the XML content to a file for audit purpose after parsing stream with SAX
问:
我正在通过使用 SAX 解析器读取 XML 内容。
我想在解析流后将 XML 内容记录到文件中以进行审核(在解析时和解析之前也可以)。
但是由于性能原因,我想将内容作为流来阅读。
我尝试克隆输入流和进程,但没有工作。任何线索将不胜感激。InputStream
法典:
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?
答:
0赞
Michael Kay
5/31/2022
#1
您可以编写一个 SAX,它复制每个事件,将其发送到两个不同的 s,一个是您当前的 s,另一个是将事件流序列化为 .ContentHandler
ContentHandler
TransformerHandler
StreamResult
评论
responseStream
TeeInputStream