我想合併2個XML流(字符串)在Java中,必然由XSLT(我可以改變轉換),但問題是XML來作爲串。有很多例子,但通過文件。 這可以做到不將它們保存在文件中?如何通過XSLT合併Java中的2個XML流
謝謝。
我想合併2個XML流(字符串)在Java中,必然由XSLT(我可以改變轉換),但問題是XML來作爲串。有很多例子,但通過文件。 這可以做到不將它們保存在文件中?如何通過XSLT合併Java中的2個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')" />
看看this tutorial,它有你需要的一切(有例子)。
如果你想變換來在字符串格式的XML,使用這樣的:
Templates template = ...;
String xml = ...;
Transformer transformer = template.newTransformer();
Writer out = new StringWriter();
transformer.transform(new StreamSource(new StringReader(xml)), new StreamResult(out));
這不回答如何從字符串獲得輸入文檔。但問題是如何合併兩個文檔。其中一個文檔必須由變換本身讀取(如本教程的第三個示例中所示),或者作爲參數給出。 – 2010-04-28 14:58:01
是的!有用!!!非常感謝你!!! :)) – user327933 2010-04-28 16:34:25
+1拳頭使用,我見過。我已經調整過使用
2013-02-13 14:10:31