2010-04-28 16 views

cevap

5

: Eğer dize biçiminde gelir XML dönüştürmek istiyorsanız

gibi bir şey kullanın.

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

böyle kullanın:
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)); 

Ve içinde

Şöyle başvuru, dönüşümü:

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

Evet! İşe yarıyor!!! Çok teşekkür ederim!!! :)) – user327933

+0

+1 Bunu gördüğüme yumruk kullanıyorum. Bunu

0

this tutorial'a bir göz atın, ihtiyacınız olan her şeye sahip (örneklerle). Sadece URIResolver bir kendi uygulamasını kullanarak bir yolu hakkında bilgi

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

Bu String gelen giriş belgesini nasıl cevap vermez. Ancak soru, iki belgenin nasıl birleştirileceğidir. Dokümanlardan biri, dönüşümün kendisi tarafından (öğreticinin üçüncü örneğinde olduğu gibi) veya bir parametre olarak okunmalıdır. –