xsl-list
[Top] [All Lists]

RE: creating canonRef from flat

2003-09-19 07:58:14
check out the EXSLT string templates

yes the first step is to tokenize everything, with the semicolon as delimiter ( 
use http://www.exslt.org/str/functions/tokenize/index.html )

in fact every step could just use this template, instead of using regexp; 
though I would probably crack the '3.1-12' string just using standard string 
functions.

gl, jim fuller


-----Original Message-----
From: Jim_Albright(_at_)wycliffe(_dot_)org 
[mailto:Jim_Albright(_at_)wycliffe(_dot_)org]
Sent: 19 September 2003 14:03
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] creating canonRef from flat


Starting with
<r>Mateus 3.1-12; Lucas 3.1-20; </r>
I want
<parallelPassage>
        <canonRef book="MAT" chapter="3" verse="1" verseEnd="12"/>
        <canonRef book="LUK" chapter="3" verse="1" verseEnd="20"/>
</parallelPassage>

I have just switched to 2.0 as it seemed the regular expressions would 
help me here.
My thinking is to look in <r> and replace "Mateus" with "<book>MAT</book>" 
and "Lucas" with "<book>LUK</book>" ... and all the rest
and in a second pass change

<r><book>MAT</book> 3.1-12; <book>LUK</book> 3.1-20; </r>
<r>
        <book>MAT</book> 
        <chapter>3</chapter>
        <verse>1</verse>
        <verseEnd>12</verseEnd> 
        <book>LUK</book>
        <chapter>3</chapter>
        <verse>1</verse>
        <verseEnd>20</verseEnd 
</r>
and then put in final form in third pass
<parallelPassage>
        <canonRef book="MAT" chapter="3" verse="1" verseEnd="12"/>
        <canonRef book="LUK" chapter="3" verse="1" verseEnd="20"/>
</parallelPassage>

Am I headed in the right direction? Or are there some really neat 
shortcuts?
If I use replace will I need to have it nested 66 times to account for all 
books?


Jim Albright
704 843-0582
Wycliffe Bible Translators



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>