Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ xslt ] automatyzacja
Forum PHP.pl > Forum > XML, AJAX > XML
wassago
mam problem do rozwiazania. dokonuje konwersji formatu DocBook do XHTML(1.1) przy pomocy szablonow XSLT, wszystko generuje sie piknie. Ale nie wiem za chiny jak zmienic arkusz XSLT aby pobieral headline'y (h1, h2, h3 ...) i tworzyl z nich menu (TOC). Problem w tym ze hX sa roznie zaglebione.

EDIT:

jeszcze jeden problem. jak dolaczyc automatycznie jakis arkusz styli.. rozumiem ze robi sie to w tagu <xsl:output />, ale jak?
hawk
Uhm, nie za bardzo rozumiem...

1) W DocBooku nie ma h1, h2, itd. Są chapter, section, itd. I arkusz styli sam pobiera tytuły tych elementów i tworzy spis treści.

2) Dołączyć? Tzn żeby pokazało się odwołanie do arkusza styli w treści strony wynikowej? Do wstawiania arkusza CSS był specjalny parametr w DocBookowym XSL. Jeżeli chcesz mieć więcej styli, lub chcesz coś specjalnego, to trzeba zmienić szablon nagłówka strony. Czyli dodać własny customization layer.
wassago
1) qrde masz racje., pogielo mi sie - chodzi mi o generacje TOC wlasnie z tych chapterow ktore po konwersji sa widziane jako h1, h2...
chodzi o to aby z kazdejsekcji (sect1, sect2.. ) wyciagnac <title />, to nie jest trudne bo to juz robie.. problem w tym aby nie dosc ze wyciagnac je to wyswietlic na poczatku strony wynikowej jako menu.

2)
Cytat
Tzn żeby pokazało się odwołanie do arkusza styli w treści strony wynikowej?
dokladnie
hawk
Ad 1) No dobra, ale przecież XSL do DocBooka generuje już bardzo dobry spis treści. I ma dość dużo różnych opcji i możliwości.

Teraz pytanie, czy chcesz zrobić coś podobnego tylko samemu? w takim razie odpowiedź brzmi: olej, i tak ci ludzie znają XSL o niebo lepiej niż my, i nie ma sensu się szarpać.

Czy też może potrzebujesz czegoś zupełnie innego niż standardowy spis treści? Wtedy należy upewnić się, czy na pewno nie ma na to żadnej opcji/parametru (na ogół jednak jest), a jeżeli rzeczywiście nie ma - jak można to uzyskać robiąc drobną modyfikację standardowego szablonu.

Całość się komplikuje z uwagi na podział treści na poszczególne strony HTML, ale na to znowu też są w DocBook XSL opcje... nawet można wstawiać na każdej stronie "lokalny" spis treści.

Ad 2) To, jak pisałem, na pewno jest na to odpowiedni parametr do podania przy transformacji. Trzeba poszukać na liście parametrów i wystarczy podać nazwę arkusza, sam tag wygeneruje się automatycznie.
wassago
hmm... do konwersji DocBook => xhtml kozystam z procesora php z tymi szablonami:
- http://www.openbsd.org.mx/~santana/d2h/docbook.xsl
- http://www.openbsd.org.mx/~santana/d2h/lists.xsl
- http://www.openbsd.org.mx/~santana/d2h/misc.xsl
- http://www.openbsd.org.mx/~santana/d2h/mediaobjects.xsl

problem w tym ze za nic nie chce mi to wygenerowac spisu tresci, wlasnie dlatego moje pytanie.. gdyby automatycznie generowalo to nie bawilbym sie w generowanie po 'swojemu' winksmiley.jpg

ofkors, zdajesz sobie sprawe ze cale moje zainteresowanie DB i XSL spowodowane jest twym postem na forum dev winksmiley.jpg
hawk
OMG. Te arkusze styli to mnie rozbawiły. To nie jest nawet 1% tego, co znajduje się w oficjalnych arkuszach.

Jedyne poprawne źródło XSL do DocBooka to http://docbook.sourceforge.net/projects/xsl/. Ściągnij sobie to zobaczysz różnicę. To co podawałeś to jest zabawka. Prawdziwe arkusze są gigantyczne i nie do ogarnięcia dla jednej osoby.

Dodam jeszcze że zdecydowanie odradzam używanie takich "pokątnych" arkuszy albo męczenie czegoś samemu. Nie odmawiam szczerych chęci i dobrych intencji. Ale prawda jest taka że pełny (nie simplified) docbook jest bardzo skomplikowany. I takie wynalazki nie będą zapewniały pełnego wsparcia, bo jest to po prostu niemożliwe bez kilku lat pracy dużej grupy developerów. Zresztą widzisz na przykładzie spisu treści.

A do transformacji jednak nie polecam procesora php. Niby to jest to samo co libxslt, ale jednak. DocBook XSL ma kilka featuresów wykraczających poza zwykłe XSL, i do tego ma pluginy do różnych procesorów. Np. do Xalana jest dostarczane kilka klas javovych które robią kilka opcjonalnych rzeczy niemożliwych inaczej. Lepiej wszystko testować na bardziej "tradycyjnym" procesorze. Być może niektóre rzeczy nie są wykonalne prosto w trybie online, np. podział na wiele plików xhtml, generacja pdf, itd.

PS ofkors, zdaję sobie sprawę, i cieszę się. DocBook jest naprawdę fajnym standardem. Widziałem raz pracę magisterską napisaną w DocBooku i ona pod względem wizualnym deklasowała wszystkie wordowe wypociny. Ale to było robione na wydziale z długimi tradycjami DocBookowymi, i nie za pomocą darmowych narzędzi...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.