【问题标题】:How to set StreamSource.setReader() with custom EntityResolver in XMLReader如何在 XMLReader 中使用自定义 EntityResolver 设置 StreamSource.setReader()
【发布时间】:2011-12-08 03:11:17
【问题描述】:

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

我遇到的问题是我无法弄清楚如何将 XMLReader 放入我的流源中。

我正在执行以下操作:(doc 是 InputStream)

XMLReader reader = XMLReaderFactory.createXMLReader();
StreamSource doc_source = new StreamSource(doc);
reader.setEntityResolver(new PsudoEntityResolver());
doc_source.setReader(reader);

显然这不起作用,因为 setReader() 接受 Reader 作为其参数,而不是 XMLReader。

任何想法我可以如何解决这个问题。

【问题讨论】:

    标签: java xmlreader entityresolver


    【解决方案1】:

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

    reader.parse(new InputSource(doc));
    

    【讨论】:

    • 感谢您的快速回复,虽然我不明白这如何帮助我让读者进入我的 StreamSource。我正在构建 StreamSource 以传递给另一个正在解析的方法(我无法修改)。谢谢!
    • 那么对不起,我相信你被卡住了。 StreamSource 仅表示 XML 数据的来源——文件、字节流 (InputStream)、字符流 (Reader) 或 URL。它不包含任何其他配置,例如实体解析器。即使您将 StreamSource 子类化以使其包含这些配置,被调用的方法也不会知道它们的任何信息,也不会使用它们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-18
    • 1970-01-01
    相关资源
    最近更新 更多