Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用XMLDecoder.createHandler()返回处理程序来解析嵌入的xml持久化java对象_Java_Javabeans - Fatal编程技术网

使用XMLDecoder.createHandler()返回处理程序来解析嵌入的xml持久化java对象

使用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

在XMLDecoder.createHandler()的文档中:

但是
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);