Transformata xslt w javie

Dawno nie było nic o javie, to dziś pora na transformatę XSLT. Bardzo ciekawa rzecz, która pozwoli nam zwykłego xml przekształcić do postaci, która można pokazać zwykłemu użytkownikowi i on nie ucieknie. Nie wiem czy to będzie dobre porównanie ale pliki xsl są dla xml tym samym co css dla html.

Teraz przykład transformaty xslt w javie:

Result fin = new StreamResult(response.getWriter());

InputStream ins = new ByteArrayInputStream(content);
UnicodeInputStream uis = new UnicodeInputStream(ins, "UTF-8");

Source str = new StreamSource(new InputStreamReader(uis, "UTF-8"));

InputStream vins = new ByteArrayInputStream(visualization);
UnicodeInputStream vuis = new UnicodeInputStream(vins,"UTF-8");
Source xsl = new StreamSource(new InputStreamReader(vuis,"UTF-8"));

TransformerFactory transFact = TransformerFactory.newInstance();
Transformer trans = transFact.newTransformer(xsl);
trans.transform(str, fin);

I co my tu mamy. Content to zawartość naszego xml już w postaci bajtowej a visualization to xsl. Należy je przekształcić do typu Source aby można je było wykorzystać przy transformacie, którą wykonujemy na końcu i wynik mamy w fin.

Nie pamiętam bibliotek z których tutaj korzystałem ale jest kilka, które implementuje transformatę. Rzeczą na którą należy tu zwrócić uwagę jest klasa UnicodeInputStream. Ja korzystałem i lekko zmodyfikowałem tą klasę ale widziałem, że apache udostępnia własną klasę, która może być lepsza od tej przeze mnie używanej. Dzięki tej klasie możemy obejść problem z BOM. A czym jest BOM? Jest to kilka bajtów na początku pliku określających kodowanie. Niestety java go nie ignoruje i nie zanosi się na to aby zostało to rozwiązane. Tutaj z pomocą przychodzą na takie klasy jak UnicodeInputStream. Jak byśmy użyli standardowego InputStream to przy próbie transformaty otrzymalibyśmy błąd, że content is not allowed in prolog.

Jedna odpowiedź to “Transformata xslt w javie”

  1. Walidacja schematu XSD « nyfi’s considerations Says:

    […] Lipiec 2010 — nyfi Było już tutaj o parsowaniu xml o tworzeniu wizualizacja xml poprzez transformatę xsl ale po co nam to wszystko jeśli nie posiadamy poprawnego xml. Jeśli jest on niezgodny ze schemą […]


Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie na Google

Komentujesz korzystając z konta Google. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Połączenie z %s

%d blogerów lubi to: