Mariusz P.

Mariusz P. Specjalista ds.
Rozwoju

Temat: Tworzenie statycznego pliku html z poziomu JSE

Adrian jesteś wielki :-) A miałbyś pomysł jak jeszcze zrobić to stronicowanie po max 20 nodów <photo> na stronę wraz linkowaniem do następnych/poprzednich stron? Mi świta coś, aby zliczać jakoś przetwarzane nody <photo> i gdy osiągniemy 20ty wywoływać/zwracać jakoś szablon całej strony.
Adrian C.

Adrian C.
projektant/programis
ta

Temat: Tworzenie statycznego pliku html z poziomu JSE

Rzuć okiem na SVN'a. Szablon przyjmuje 2 parametry:
pageSize - ilość zdjęć na stronie
outputDirectory - folder, gdzie mają być zapisane pliki html.
Mariusz, nie jestem żadnym specem od XSLT, więc pewnie to co tam zobaczysz można zrobić lepiej, łatwiej, przyjemniej, jak będziesz miał jakieś pomysły czuj się wolny zmieniać i komitować. Rozwiązanie zostawię w tym projekcie przez jakiś czas, może jeszcze komuś się przyda.
Mariusz P.

Mariusz P. Specjalista ds.
Rozwoju

Temat: Tworzenie statycznego pliku html z poziomu JSE

Podczas transformacji domyślnym parserem Javy dostaje taki błąd: "ERROR: 'Unsupported XSL element 'http://www.w3.org/1999/XSL/Transform:result-document''.

W Javie domyślnym parserem jest Xalan. A ten obsługuje tylko specyfikację 1.0. Result-document to już specyfikacja 2.0.

Podłaczałem parser Saxon:

System.setProperty("javax.xml.transform.TransformerFactory", "net.sf.saxon.TransformerFactoryImpl");
TransformerFactory tFactory = TransformerFactory.newInstance("net.sf.saxon.TransformerFactoryImpl",null);

Nawet chyba tylko druga linia wystarczy, jako parametr. Przy Saxonie nie dostaję żadnych błędów, ale nic się nie generuje. Coś źle robię?Mariusz P. edytował(a) ten post dnia 07.01.12 o godzinie 18:49
Adrian C.

Adrian C.
projektant/programis
ta

Temat: Tworzenie statycznego pliku html z poziomu JSE

Mariusz zerknij do katalogu: System.getProperty("user.dir") + "/out/";
Tam będziesz miał to co Cię interesuje, wygenerowane HTML'e.
Parametry transformaty możesz ustawiać z kodu JAVA, w sposób np taki:
transformer.setParameter("outputDirectory", "file:///D:/temp/out/");
wtedy będziesz miał wynik tam gdzie to podasz stricte.
Pusty wynik transformaty zignoruj, teraz sam transformator generuje i zapisuje pliki html pod wskazane miejsce.

Następna dyskusja:

dziedziczenie z klasy Socke...




Wyślij zaproszenie do