[英]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()
。 当我尝试将其XMLResolver
为XMLResolver
时,我收到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.