我想在 Java 中合并 2 个 XML 流(字符串),必须通过 XSLT(我可以更改转换),但问题是 XML 作为字符串出现。有很多例子,但是通过文件。
可以在不将它们保存在文件中的情况下完成此操作吗?
Thanks.
我只知道一种使用自己的实现的方法URI解析器 http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/transform/URIResolver.html.
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')" />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)