🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

2 total messages Started by robert Sun, 27 Apr 2008 20:13
problem z sortowaniem
#9845
Author: robert
Date: Sun, 27 Apr 2008 20:13
81 lines
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
#9846
Author: szomiz
Date: Mon, 28 Apr 2008 07:53
29 lines
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