繁体   English   中英

在StAX中使用CatalogResolver

[英]Using CatalogResolver with StAX

我正在使用此处提供的方法: http : //xerces.apache.org/xml-commons/components/resolver/resolver-article.html

这是我使用StAX的XML解析代码

XMLInputFactory factory = XMLInputFactory.newInstance();
factory.setProperty(XMLInputFactory.IS_VALIDATING, "true");
CatalogResolver cr = new CatalogResolver();
factory.setXMLResolver(cr);
XMLEventReader eventReader =
    factory.createXMLEventReader(new InputStreamReader(
        httpResp.getEntity().getContent()));

但是,我无法将CatalogResolver参数提供给setXMLResolver() 当我尝试将其XMLResolverXMLResolver时,我收到XMLResolver

我想念什么吗? 我还可以通过什么其他方式提供CatalogResolver

org.apache.xml.resolver.tools.CatalogResolver实现org.xml.sax.EntityResolver ,因此可以用作SAX XML解析器的解析器。

但是XMLInputFactory需要一个不同的接口javax.xml.stream.XMLResolver

您可以简单地包装CatalogResolver:

CatalogResolver catResolver = null;
XMLResolver xmlResolver = (p,s,b,n) -> { try {
        return catResolver.resolveEntity(p,s);
    }
    catch (Exception e) {
        throw new XMLStreamException(e);
    }
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM