Java 如何在XMLReader中使用自定义EntityResolver设置StreamSource.setReader()

Java 如何在XMLReader中使用自定义EntityResolver设置StreamSource.setReader(),java,xmlreader,entityresolver,Java,Xmlreader,Entityresolver,我需要从xml文件中获取StreamSource,但是我还需要使用自定义EntityResolver 我遇到的问题是,我不知道如何将XMLReader放入我的流源中 我正在做以下工作:doc是一个输入流 XMLReader reader = XMLReaderFactory.createXMLReader(); StreamSource doc_source = new StreamSource(doc); reader.setEntityResolver(new PsudoEntityReso

我需要从xml文件中获取StreamSource,但是我还需要使用自定义EntityResolver

我遇到的问题是,我不知道如何将XMLReader放入我的流源中

我正在做以下工作:doc是一个输入流

XMLReader reader = XMLReaderFactory.createXMLReader();
StreamSource doc_source = new StreamSource(doc);
reader.setEntityResolver(new PsudoEntityResolver());
doc_source.setReader(reader);
显然,这不起作用,因为setReader接受Reader作为其参数,而不是XMLReader


有什么办法可以解决这个问题吗。

使用您的XMLReader,按原样设置实体解析器,然后调用:

reader.parse(new InputSource(doc));

感谢您的快速回复,尽管我不知道这如何帮助我让读者进入我的StreamSource。我正在构造要传递给另一个方法的StreamSource,该方法正在进行我无法修改的解析。谢谢那么对不起,我相信你被卡住了。StreamSource仅指示XML数据的源—文件、字节流InputStream、字符流读取器或URL。它不包含任何其他配置,例如实体解析器。即使您将StreamSource子类化以使其包含这些配置,被调用的方法也不会了解这些配置,也不会使用它们。