我有一个javax.xml.transform.sax.SAXSource,我想获得一个org.w3c.dom.Document对象。我已经在Google周围搜索了几个小时,但感到沮丧。

此外,InputSource返回的SAXSource#getInputSource()为null,因此我无法使用它来构建org.w3c.dom.Document

顺便说一句,我试图实现的是从SAXSource中包含的xml中删除一些xml元素。

谢谢您的帮助!

关于我的环境的一些信息:SAXSource通过以下javax.xml.ws调度程序的invoke方法返回给我:

Service service = Service.create(serviceName);
//...
javax.xml.ws.Dispatch<Source> dispatcher =
        service.createDispatch(portName, Source.class, Service.Mode.MESSAGE);

最佳答案

您通常将此类型与Transformer结合使用:

//Source source = your SAXSource
DOMResult result = new DOMResult();
TransformerFactory.newInstance()
    .newTransformer()
    .transform(source, result);
Document doc = (Document) result.getNode();

10-07 22:43