[英]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.