Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> XSLT a zmienne
nightmark
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 5.08.2005

Ostrzeżenie: (0%)
-----


Witam.
Czy istnieje jakaz mozliwosc zastosowania klasycznych zmiennych w arkuszach XSLT.
Chodzi mi o mozliwosc zwiekszenia zmiennej przy przechodzeniu przez kolejny wezel.
Wiem ze w xslt nie istnieja zmienne w pelnym slowa tego znaczeniu ale moze da sie to zrobic w jakis inny sposob? Chodzi o to ze aby przy przejsciu przez np:

Kod:
<?xml version="1.0" encoding="iso-8859-2" ?>
- <document>
- <subject name="Jezyk angielski" internet_only="0" exam="1">
<lang_group name="1" level="B" />
<meeting date="2005-02-21" time="08:30 - 10:00" room="9K" teachers="mgr Aleksandra K" day="poniedzialek" />
<meeting date="2005-02-28" time="08:30 - 10:00" room="9K" teachers="mgr Aleksandra K" day="poniedzialek" />
<meeting date="2005-03-07" time="08:30 - 10:00" room="9K" teachers="mgr Aleksandra K" day="poniedzialek" />
<meeting date="2005-03-14" time="08:30 - 10:00" room="9K" teachers="mgr Aleksandra K" day="poniedzialek" />
<meeting date="2005-03-21" time="08:30 - 10:00" room="9K" teachers="mgr Aleksandra K" day="poniedzialek" />
<meeting date="2005-04-04" time="08:30 - 10:00" room="9K" teachers="mgr Aleksandra K" day="poniedzialek" />
...........
..........
.........itd

kawalek takiego kodu byl bym w stanie stworzyc petle i zwiekszyc jakas zmienna o 1, aby wiedzec czy w dokumencie przez mnie przetwarzanym "meeting date" jest mniejsze od daty dzisiejszej.

Date dzisiejsza pobieram z php wiec ja mam. Konwetruje date na liczbe, tworze petle, ktora po kolei sprawdza czy data ta juz minela i gdy minela, chce zwiekszac jakas wartosc o 1, zeby moc sprawdzic czy minely juz wszystkie daty we wszystkich przedmiotach i wyswietlic odpowiedni komunikat.
Moza sa jakies rozszerzenia ktore sa w stanie to zalatwic?
Zgory dzieki za pomoc.
Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
matid
post
Post #2





Grupa: Zarejestrowani
Postów: 362
Pomógł: 0
Dołączył: 18.02.2004
Skąd: Knurów

Ostrzeżenie: (0%)
-----


Nie wiem do końca, jak zmieniasz te czasy na timestamp, ale udało mi się wymyślić tylko takie coś:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
  3. <document>
  4.    <lang>
  5.        <meeting time="1123271502" />
  6.        <meeting time="1123272502" />
  7.        <meeting time="1123273502" />
  8.    </lang>
  9.    <lang>
  10.        <meeting time="1123274502" />
  11.        <meeting time="1123275502" />
  12.        <meeting time="1123276502" />
  13.        <meeting time="1123277502" />
  14.    </lang>
  15. </document>

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  3. <xsl:template match="/">
  4.    <html>
  5.    <body>
  6.        <xsl:variable name="now">1123275502</xsl:variable>
  7.        <xsl:variable name="pozostalo" select="count(/document/lang[meeting/@time>$now])" />
  8.    <xsl:if test="$pozostalo = 0">
  9.        Mineły wszystkie daty we wszystkich przedmiotach!
  10.    </xsl:if>
  11.    </body>
  12.    </html>
  13. </xsl:template>
  14. </xsl:stylesheet>

Popracujesz trochę nad tym i powinno być ok.

A co to tych zmiennych, to przepraszam, tego rzeczywiście się tak nie da zrobić (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował matid 5.08.2005, 23:01:52
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 16:41