![]() |
![]() |
![]()
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 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 362 Pomógł: 0 Dołączył: 18.02.2004 Skąd: Knurów Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 5.08.2005 Ostrzeżenie: (0%) ![]() ![]() |
Tak tyle ze to wlasnie bedzie traktowane jako stala a nie zmienna krora moge zwiekszac.
Chodzi mi bardziej co cos w stylu na czym moge wykonac np i++ . Zwiekszenie zmiennej o 1 badz jakas tam wartosc. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 362 Pomógł: 0 Dołączył: 18.02.2004 Skąd: Knurów Ostrzeżenie: (0%) ![]() ![]() |
Cytat The only way in which a variable can be changed is by declaring it inside a for-each loop, in which case its value will be updated for every iteration.
Ten post edytował matid 5.08.2005, 21:48:22 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 5.08.2005 Ostrzeżenie: (0%) ![]() ![]() |
po zrobieniu tego jak mowisz wyskakuje:
conflicting variable bindings 'liczba' |
|
|
![]()
Post
#6
|
|
![]() 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ś:
Popracujesz trochę nad tym i powinno być ok. A co to tych zmiennych, to przepraszam, tego rzeczywiście się tak nie da zrobić ![]() Ten post edytował matid 5.08.2005, 23:01:52 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 5.08.2005 Ostrzeżenie: (0%) ![]() ![]() |
Konwertuje date na liczbe w ten sposob:
<xsl:variable name="d_data"> <xsl:value-of select="translate($dzisiejsza_data,'-','')"/> <!-- konwertuje date na liczbe --> </xsl:variable> Czy istnieje mozliwosc przekonwetowania tego w locie zgodnie ze schametem ktory proponujesz? <xsl:variable name="pozostalo" select="count(/document/subject[meeting/@date > $d_data])" /> <xsl:if test="$pozostalo = 0"> <p> Minely wszystkie daty we wszystkich przedmiotach!</p> </xsl:if> poniewaz data pobiarana wczesniej z bazy danych jest w formacie z kreskami i tak wlasnie wystepuje w dokumencie xml ktory przerabiam za pomoca tego arkusza wlasnie troche przerobilem i zdaje sie dzialac w ten sposob: Kod <xsl:variable name="d_data">
<xsl:value-of select="translate($dzisiejsza_data,'-','')"/> <!-- konwertuje date na liczbe --> </xsl:variable> <xsl:variable name="pozostalo" select="count(/document/subject[translate(meeting/@date,'-','') > $d_data])" /> <xsl:if test="$pozostalo = 0"> <p> Minely wszystkie daty we wszystkich przedmiotach!</p> </xsl:if> Ten post edytował nightmark 6.08.2005, 17:24:51 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 02:28 |