使用XMLDecoder.createHandler()返回处理程序来解析嵌入的xml持久化java对象
在XMLDecoder.createHandler()的文档中: 但是使用XMLDecoder.createHandler()返回处理程序来解析嵌入的xml持久化java对象,java,javabeans,Java,Javabeans,在XMLDecoder.createHandler()的文档中: 但是createHandler()返回DefaultHandler类型的对象。。。这有什么用 我需要使用javax.xml.parsers.SAXParser解析嵌入异构xml文件中的对象,并试图避免导入com.sun.beans.decoder.DocumentHandler 谢谢。我也有这个问题,我对你可能遇到的任何答案都很感兴趣。与此同时,我想到的最好的办法是: DefaultHander handler = XMLDeco
createHandler()
返回DefaultHandler
类型的对象。。。这有什么用
我需要使用javax.xml.parsers.SAXParser
解析嵌入异构xml文件中的对象,并试图避免导入com.sun.beans.decoder.DocumentHandler
谢谢。我也有这个问题,我对你可能遇到的任何答案都很感兴趣。与此同时,我想到的最好的办法是:
DefaultHander handler = XMLDecoder.createHandler( ... );
SAXParserFactory.newInstance().newSAXParser().parse(in, handler);
Object[] data = (Object[])decoderHandler.getClass().getMethod("getObjects").invoke(decoderHandler);
显然,这并不理想,但它在API允许的约束范围内完成了工作
PS我之所以想这样做,而不仅仅是使用XMLDecoder.readObject(),是因为我需要在解码过程中拦截并可能操纵XML
DefaultHander handler = XMLDecoder.createHandler( ... );
SAXParserFactory.newInstance().newSAXParser().parse(in, handler);
Object[] data = (Object[])decoderHandler.getClass().getMethod("getObjects").invoke(decoderHandler);