gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:52:25 26 4
gpt4 key购买 nike

我想在 Java 中合并 2 个 XML 流(字符串),必须通过 XSLT(我可以更改转换),但问题是 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')" />

关于java - 如何通过 XSLT 在 Java 中合并 2 个 XML 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2730231/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com