bir öğeye bir String nesnesi (içeren XML) 'dönüşümü' için, ben XML öğeleri içeren bir String nesnesi vardır:nasıl Varolan JSP sayfasında Şu
String carsInGarage = garage.getCars();
Ben şimdi bu Dize geçmek istiyorum Bir giriş/akış kaynağı (veya bir çeşit kaynak), ancak hangisinin seçileceğini ve nasıl uygulanacağından emin değilim.
Baktığım çözümlerin çoğu paketi içe aktarır: javax.xml.transform ve XML dosyasını (stylerXML.xml) kabul eder ve bir HTML dosyasına (outputFile.html) gönderir (Bkz. Aşağıdaki kod).
try
{
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer(new StreamSource("styler.xsl"));
transformer.transform(new StreamSource("stylerXML.xml"), new StreamResult(new FileOutputStream("outputFile.html")));
}
catch (Exception e)
{
e.printStackTrace();
}
Mevcut bir JSP sayfası içinde bir String nesnesi ve bir elemana çıkışı (XSL kullanarak) kabul etmek istiyorum. Bunu nasıl uygulayacağımı bilmiyorum, hatta yukarıdaki kodu inceledim bile.
Lütfen birisi size yardımcı olabilir/yardımcı olabilir. Bir çözüm için yüksek ve düşük arama yaptım, ancak hiçbir şeyi çıkaramıyorum. bir noktada kaynak sadece tek bir dize daha içermesini veya el ile XML sarıcı eleman oluşturmak istemiyorsanız istiyorsanız
try {
StringReader reader = new StringReader("<xml>blabla</xml>");
StringWriter writer = new StringWriter();
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer(
new javax.xml.transform.stream.StreamSource("styler.xsl"));
transformer.transform(
new javax.xml.transform.stream.StreamSource(reader),
new javax.xml.transform.stream.StreamResult(writer));
String result = writer.toString();
} catch (Exception e) {
e.printStackTrace();
}
Merhaba Bruno, Bu mükemmel cevap için teşekkürler. Şu anda düzgün bir şekilde derleniyor :) Ancak, yine de ekrana yazdıramıyorum. Şu anda deneme yapıyorum: out.println (yazar); ancak bu başarısız oluyor. – Lycana
Belki de dönüşümde bir hata vardı ... tam olarak nasıl başarısız oluyor? –
Tarayıcıya hiçbir şey yazdırılmadığı için başarısız olur. Deneme bloğumun alt kısmında: Dize sonucu = writer.toString(); out.print ("