如何通过XSLT合并Java中的2个XML流

我想在Java中合并2个XML流(字符串),必须通过XSLT(我可以改变转换),但问题是XML是一个字符串。 有很多例子,但是通过文件。 这可以在不保存文件的情况下完成吗?

谢谢。

我只知道使用自己的URIResolver实现的方法。

public final class StringURIResolver implements URIResolver { Map documents = new HashMap(); public StringURIResolver put(final String href, final String document) { documents.put(href, document); return this; } public Source resolve(final String href, final String base) throws TransformerException { final String s = documents.get(href); if (s != null) { return new StreamSource(new StringReader(s)); } return null; } } 

像这样用它:

 final String document1 = ... final String document2 = ... final Templates template = ... final Transformer transformer = template.newTransformer(); transformer.setURIResolver(new StringURIResolver().put("document2", document2)); final StringWriter out = new StringWriter(); transformer.transform(new StreamSource(new StringReader(document1)), new StreamResult(out)); 

在转换中,请像这样引用它:

  

看看本教程 ,它有你需要的所有东西(带例子)。

如果要转换以String格式提供的XML,请使用以下内容:

 Templates template = ...; String xml = ...; Transformer transformer = template.newTransformer(); Writer out = new StringWriter(); transformer.transform(new StreamSource(new StringReader(xml)), new StreamResult(out));