Thread View: pl.comp.xml
2 messages
2 total messages
Started by robert
Sun, 27 Apr 2008 20:13
problem z sortowaniem
Author: robert
Date: Sun, 27 Apr 2008 20:13
Date: Sun, 27 Apr 2008 20:13
81 lines
3985 bytes
3985 bytes
Witam!
Przekonwertowalem sobie ksiazke (religijną) napisaną w Wordzie do formatu xml.
W tekscie jest wiele fragmentoów z siglami, np.:
"Bóg podejmuje całą historię Abrahama (<sigle>Rdz 12,1-3</sigle>)."
Probuje korzystajac z xslt utworzyc indeks odnośników biblijnych i oczywiscie
chcialbym, aby zostal posortowany.
Odnośniki biblijne nazwa się "sigle", a mają postać np.:
- Mt 6,12 (Ewangelia Mateusz, księga 6, werset 12)
- Mt 4,1-12 (Ewangelia Mateusz, księga 4, wersety od 1 do 12)
- Mt 3,1.3 (Ewangelia Mateusz, księga 3, wersety 1 i 3)
Napisałem szablon (fragment):
<!-- policz sigle: -->
<xsl:variable name="nsig"><xsl:value-of
select="count(//sigle)"/></xsl:variable>
<!-- jesli sa sigle: -->
<xsl:if test="$nsig > 0">
<xsl:for-each select="//sigle">
<xsl:sort/>
<p class="p1"><a href="#{generate-id(.)}"><xsl:value-of
select="."/></a></p> <!-- link do sigli-->
</xsl:for-each>
</xsl:if>
Uzyskuję coś takiego (fragment):
<p class="p1"><a href="#IDASTOY">Pp 28,68</a></p>
<p class="p1"><a href="#IDAJAPY">Ps 10,7</a></p>
<p class="p1"><a href="#IDA05OY">Ps 14,13</a></p>
<p class="p1"><a href="#IDAJ5OY">Ps 14,1-3</a></p>
<p class="p1"><a href="#IDAFAPY">Ps 140,4</a></p>
<p class="p1"><a href="#IDATAPY">Ps 143,2</a></p>
<p class="p1"><a href="#IDALXOY">Ps 15,11</a></p>
<p class="p1"><a href="#IDAZWOY">Ps 16,8</a></p>
<p class="p1"><a href="#IDACXOY">Ps 25,9-10</a></p>
<p class="p1"><a href="#IDARAPY">Ps 36,2</a></p>
<p class="p1"><a href="#IDA45OY">Ps 5,10</a></p>
<p class="p1"><a href="#IDA5DOY">Rdz 1,27</a></p>
<p class="p1"><a href="#IDAHYOY">Rdz 1,4</a></p>
<p class="p1"><a href="#IDA4SOY">Rdz 11,6</a></p>
<p class="p1"><a href="#IDAVMPY">Rdz 12,1</a></p>
<p class="p1"><a href="#IDACTOY">Rdz 12,1-3</a></p>
<p class="p1"><a href="#IDAJFOY">Rdz 3,1a</a></p>
<p class="p1"><a href="#IDAUFOY">Rdz 3,2-3</a></p>
<p class="p1"><a href="#IDA0FOY">Rdz 3,4</a></p>
<p class="p1"><a href="#IDAFGOY">Rdz 3,5</a></p>
<p class="p1"><a href="#IDA5GOY">Rdz 3,56</a></p>
<p class="p1"><a href="#IDAQGOY">Rdz 3,6</a></p>
<p class="p1"><a href="#IDAYGOY">Rdz 3,7</a></p>
<p class="p1"><a href="#IDAHROY">Rdz 4,9</a></p>
<p class="p1"><a href="#IDAF3OY">Rdz 6,5</a></p>
<p class="p1"><a href="#IDAUGOY">Rdz 7,7</a></p>
Niestety, jak widać sortowane są księgi biblijne, natomiast rozdzialy i wersety
juz nie sa poprawnie posortowane.
Czy ktoś ma jakąś ideę, jak to można by zrobić?
Mnie świta taki algorytm:
-szukać pierwszego przecinka
-liczba PRZED przecinkiem (nr rozdzialu) uzupelnic wiodacymi zerami do liczby
trzycyfrowej (np. 1 -> 001)
-liczba PO przecinku (nr wersetu) uzupelnic wiodacymi zerami do liczby
trzycyfrowej (np. 1 -> 001)
-wynik posrotowac alfanumerycznie
-usunąc wiodące zera
- technicznie, mnie to przerasta
Pozdrowienia
Robert
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Re: problem z sortowaniem
Author: szomiz
Date: Mon, 28 Apr 2008 07:53
Date: Mon, 28 Apr 2008 07:53
29 lines
1941 bytes
1941 bytes
Użytkownik "robert" <roblegWYTNIJTO@poczta.onet.pl> napisał w wiadomości news:732b.0000008d.4814de4f@newsgate.onet.pl... > Mnie świta taki algorytm: Nie mysl o tym jak o algorytmie, bo sie natniesz. W sort ma byc wyrazenie zwracajace wartosc, tam sie nie da za bardzo kombinowac. > -szukać pierwszego przecinka > -liczba PRZED przecinkiem (nr rozdzialu) uzupelnic wiodacymi zerami do > liczby substring-before() Uzupelniac nie trzeba, bo w sort mozna uzyc data-type. > trzycyfrowej (np. 1 -> 001) > -liczba PO przecinku (nr wersetu) uzupelnic wiodacymi zerami do liczby substring-after() > trzycyfrowej (np. 1 -> 001) > -wynik posrotowac alfanumerycznie > -usunąc wiodące zera Usuwac nie trzeba (bo nie trzeba uzupelniac), a jezeli nawet to nie ma jak, bo wartosc wygenerowana na potrzeby sortowania nie jest nigdzie dostepna. sz.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads