繁体   English   中英

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

[英]How to merge 2 XML streams in Java by XSLT

我想用XSLT合并Java中的2个XML流(字符串)(我可以更改转换),但是问题是XML以字符串形式出现。 有很多示例,但是通过文件。 无需将其保存在文件中就可以做到吗?

谢谢。

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

public final class StringURIResolver implements URIResolver {
    Map<String, String> documents = new HashMap<String, String>();

    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));

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

<xsl:variable name="document2" select="document('document2')" />

看一下本教程 ,它拥有您所需要的一切(带有示例)。

如果要转换String格式的XML,请使用以下方法:

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

暂无
暂无

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

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